为什么我的自适应触发器不起作用

时间:2018-04-28 02:55:10

标签: c# xaml uwp

当我第一次运行代码时,它工作正常 经过多次调试后,它无法激活触发器enter image description here

我不知道为什么

但是在设计界面中它会显示我想要的布局

enter image description here

这是XAML代码

        <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="AdaptiveLayout">
            <VisualState x:Name="PhoneDisplay">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="RelativePanelTop.Visibility" Value="Collapsed"/>
                    <Setter Target="RadialProgressBarControl1.Visibility" Value="Collapsed"/>
                    <Setter Target="StackMember.Visibility" Value="Collapsed"/>
                    <Setter Target="UploadSpeedText.Visibility" Value="Collapsed"/>
                    <Setter Target="ToolsGrid.Width" Value="*"/>
                    <Setter Target="RightPB.HorizontalAlignment" Value="Center"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="TabletDisplay">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1500"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="RelativePanelTop.Visibility" Value="Visibile"/>
                    <Setter Target="RadialProgressBarControl1.Visibility" Value="Visibile"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

2 个答案:

答案 0 :(得分:2)

当自适应触发器不起作用时,我首先要检查的是我是否在某处控件的名称中出现了拼写错误。最简单的方法是注释掉所有的setter,然后逐个取消注释,看看它们是否逐渐运行。问题是,当任何setter的TargetValue拼写错误时,整个触发器将完全停止工作,尽管它不会抛出任何异常。

我的猜测是问题出在

<Setter Target="RelativePanelTop.Visibility" Value="Visibile"/>
<Setter Target="RadialProgressBarControl1.Visibility" Value="Visibile"/>

您似乎意外拼写了"Visibile"而不是"Visible"

答案 1 :(得分:0)

发现它! 这个属性弄乱了所有这些,我不知道为什么但是当我删除它时一切正常

<Setter Target="ToolsGrid.Width" Value="*"/>