我正在尝试根据事件更改为Button的BorderBrush。
我尝试搜索如何更改视觉状态,但所有这些都使用VisualState.StateTriggers和VisualState.Setters的组合。当我在我的Style中使用它们时,我收到错误消息"会员' Setters'无法识别或无法访问"。
开发环境
.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>
答案 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
)?我需要更多信息。