Wpf 在xaml中创建自定义VisualState,并在CodeBehind中手动设置
我有一个TabItem样式,它有可视状态Wpf 在xaml中创建自定义VisualState,并在CodeBehind中手动设置,wpf,xaml,coding-style,Wpf,Xaml,Coding Style,我有一个TabItem样式,它有可视状态 <VisualState x:Name="MouseOver"> <!-- Tab turns bronze when mouseover --> </VisualState> 你试过了吗 VisualStateManager.gostate 获取一个控件、一个带有自定义状态名的字符串和一个用于使用转换的bool标志 来自的示例用法 private void UpdateStates(bool-usetransfo
<VisualState x:Name="MouseOver">
<!-- Tab turns bronze when mouseover -->
</VisualState>
你试过了吗
VisualStateManager.gostate
获取一个控件、一个带有自定义状态名的字符串和一个用于使用转换的bool标志来自的示例用法
private void UpdateStates(bool-usetransformations)
{
如果(值>=0)
{
VisualStateManager.GoToState(此为“正”,使用转换);
}
其他的
{
VisualStateManager.GoToState(此为“负”,使用转换);
}
如果(聚焦)
{
VisualStateManager.GoToState(这是“聚焦的”,使用转换);
}
其他的
{
VisualStateManager.GoToState(此为“未聚焦”,使用转换);
}
}
一个稍微复杂一些的用法示例 考虑到这个xaml
改变状态可以这样做
VisualStateManager.GoToState(这个,SG1EllipseRight.Name,true);
或者
VisualStateManager.gostate(控件“SG1EllipseRight”,true);
试试这个
VisualStateManager.GoToElementState(Control, "StateName", true/false);
或
VisualStateManager还允许您指定控件
进入特定状态。应该调用以进行更改的方法
状态取决于您的场景。如果创建的控件使用
VisualStateManager在其ControlTemplate中调用GoToState方法。
有关如何创建使用
VisualStateManager,请参见创建具有可自定义
外表。如果在外部使用VisualStateManager
ControlTemplate(例如,如果在
在单个元素中,调用GoToElementState方法。
在任何一种情况下,VisualStateManager都会执行以下逻辑:
需要适当地启动和停止
与所涉国家有关
这就是GoToElementState和GoToState之间的不同之处,更新后包含文章中的示例(带有更新的链接)和mdsn示例谢谢@Terrance
MyTabItem.VisualState = CustomVisualState. //something like this
VisualStateManager.GoToElementState(Control, "StateName", true/false);
VisualStateManager.GoToState(Control, "StateName", true/false);