Dmitry
Dmitry

Reputation: 1165

How to use ConnectivityTrigger from AdaptiveTriggerLibrary?

I need using ConnectivityTriggers. In view I wrote this code:

xmlns:connectivityTriggers="using:AdaptiveTriggerLibrary.Triggers.ConnectivityTriggers"

<VisualStateGroup x:Name="Connectivity">
    <VisualState x:Name="disconnect">
        <VisualState.StateTriggers>
            <connectivityTriggers:NetworkConnectionStateTrigger
                Condition="ConstrainedInternetAccess"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
            <Setter
                Target="EditProfileButton.IsEnabled"
                Value="False" />
        </VisualState.Setters>
     </VisualState>
</VisualStateGroup>

And this code not work.

What I need write to ConditionModifier?

Upvotes: 0

Views: 56

Answers (1)

Nico Zhu
Nico Zhu

Reputation: 32785

For detecting the network state changes, you can create VisualStateGroup by using AdaptiveTriggerLibrary like following code. But it does not work fine when you manually disconnect the network.

<VisualStateGroup>
    <VisualState x:Name="conect">
        <VisualState.StateTriggers>
            <networkState:NetworkConnectionStateTrigger Condition="InternetAccess" />
        </VisualState.StateTriggers>
        <VisualState.Setters>
            <Setter Target="SupportedTextBlock.Text" Value="Fine" />
        </VisualState.Setters>
    </VisualState>
    <VisualState x:Name="disconnect">
        <VisualState.StateTriggers>
            <networkState:NetworkConnectionStateTrigger Condition="ConstrainedInternetAccess" />
        </VisualState.StateTriggers>
        <VisualState.Setters>
            <Setter Target="SupportedTextBlock.Text" Value="not Fine" />
        </VisualState.Setters>
    </VisualState>
</VisualStateGroup>

I suggest you use WindowsStateTriggers to detect network state. You can create two VisualStates and set different triggers like following code.

xmlns:triggers="using:WindowsStateTriggers"
...
<VisualStateGroup x:Name="Connectivity">
    <VisualState x:Name="connect">
        <VisualState.StateTriggers>
            <networkstate:NetworkConnectionStateTrigger ConnectionState="Connected"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
            <Setter Target="state.Text" Value="connected"/>
        </VisualState.Setters>
    </VisualState>
    <VisualState x:Name="disconnect">
        <VisualState.StateTriggers>
            <networkstate:NetworkConnectionStateTrigger ConnectionState="Disconnected"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
            <Setter Target="state.Text" Value="disconnected"/>
        </VisualState.Setters>
    </VisualState>
</VisualStateGroup>

Upvotes: 1

Related Questions