为什么VisualState.StateTriggers无法识别或无法访问?

时间:2016-10-06 02:59:11

标签: uwp

我正在尝试根据事件更改为Button的BorderBrush。

我尝试搜索如何更改视觉状态,但所有这些都使用VisualState.StateTriggers和VisualState.Setters的组合。当我在我的Style中使用它们时,我收到错误消息"会员' Setters'无法识别或无法访问"。

开发环境

  • Windows 10 Professional
  • Visual Studio Community Edition 2013 Update 4
  • .Net Framework 4.6.1

    <Style x:Key="ButtonGameLarge" TargetType="Button">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid x:Name="RootGrid" Background="{TemplateBinding Background}">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup >
                                <VisualState x:Name="whateverName">
                                    <VisualState.StateTriggers>
                                        <AdaptiveTrigger MinWindowWidth="720" />
                                    </VisualState.StateTriggers>
                                    <VisualState.Setters>
                                        <Setter Target="RootGrid.Height" Value="80" />
                                        <Setter Target="RootGrid.Width" Value="400" />
                                        <Setter Target="RootGrid.Margin" Value="0,0,0,20" />
                                    </VisualState.Setters>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <ContentPresenter x:Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

2 个答案:

答案 0 :(得分:2)

您提到您正在使用Visual Studio 2013.但是,根据Microsoft,您至少需要Visual Studio 2015来为UWP开发。我的猜测是&#34;环球&#34;你选择的是旧的Windows 8.1风格&#34;通用&#34;它没有UWP的VisualState功能。你根本没有真正使用UWP项目。

答案 1 :(得分:0)

我在Visual Studio中创建了一个空项目,将您的XAML代码粘贴到我的主页面中,并将样式应用于按钮。它编译并运行良好。

您确定您的项目是通用Windows 项目,而不是更老的项目(例如 Windows运行时,如果我记得没有StateTriggers)?我需要更多信息。