我正在Windows 8中开发一个xaml / c#metro风格应用程序。我想模拟Microsoft Calendar app comboBox Style(在事件详细信息页面中)。我的意思是,选择后有彩色框和边框的行为。我怎么能用视觉状态来做呢?
答案 0 :(得分:1)
没有标准控制,您必须创建自己的/扩展标准组合框
答案 1 :(得分:0)
这样的事情应该有效:
<Combobox.Template>
<ControlTemplate>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Unfocused"/> <!--leave the unfocused state empty if the control already looks "unfocused" -->
<VisualState x:Name="Focused">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="background" Storyboard.TargetProperty="Opacity" To="0.2" Duration="0"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="background" Background="Red" Opacity="0" />
<!--other stuff-->
</ControlTemplate>
</Combobox.Template>
Combobox控件根据鼠标/键盘输入(如聚焦,按下,鼠标悬停等)自动切换其内置状态。通过切换状态,为当前状态定义的故事板将被反转,并且您拥有的故事板为新状态定义的将被应用。您可以在此处查看可用状态:http://msdn.microsoft.com/en-us/library/ms752094.aspx
(使用代码隐藏,您也可以根据事件等实现自己的状态,但这很少需要。)