AdaptiveTrigger无法正常运行UWP

时间:2016-05-12 21:46:45

标签: xaml win-universal-app uwp-xaml

我有UWP应用程序。

<GridView Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" x:Name="GridColections" IsItemClickEnabled="True" SelectionMode=" None " ItemsSource="{x:Bind DS.AllRem, Mode=OneWay}" ItemClick="GridColections_ItemClick" >
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="Small">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="RemXML.Background" Value="Red" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="Middle">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="400"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="RemXML.Background" Value="Green"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="Big">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="500"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="RemXML.Background" Value="Yellow"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <GridView.ItemTemplate>
        <DataTemplate x:DataType="local:GetRem">
            <RelativePanel x:Name="RemXML"  Width="345" Background="Cyan">
                <TextBlock TextWrapping="Wrap" Text="{x:Bind ReminderName}"  Margin="5,5,0,0" RelativePanel.AlignLeftWithPanel="True" FontSize="20" />
                <TextBlock TextWrapping="Wrap" Text="{x:Bind ReminderDescription}" Margin="6,35,0,0" RelativePanel.AlignLeftWithPanel="True" FontSize="13.333"/>
                <CheckBox RelativePanel.AlignRightWithPanel="True" Margin="100,0,-200,0" Width="220"  RelativePanel.AlignVerticalCenterWithPanel="True">
                    <CheckBox.RenderTransform>
                        <CompositeTransform ScaleX="-1"/>
                    </CheckBox.RenderTransform>
                </CheckBox>
            </RelativePanel>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

因此,自适应触发器无法在我的应用中运行。我需要更改RelativePanel背景。当我在第一个控件中有视觉状态时我有错误&#34;动画正在尝试修改名为&#39; RemXML&#39;的对象,但在页面中找不到这样的对象。&#34;当我在RelativePanel中使用的视觉状态不能工作时

1 个答案:

答案 0 :(得分:2)

尝试将VisualStateManager放在DataTemplate中,其中UserControl作为顶级元素。

<GridView.ItemTemplate>
    <DataTemplate x:DataType="local:GetRem">
        <UserControl>
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup>
                    <VisualState x:Name="Small">
            ......
            </VisualStateManager.VisualStateGroups>
            <RelativePanel x:Name="RemXML"  Width="345" Background="Cyan">