XAML VisualState AdaptiveTrigger MinWindowWidth以编程方式更改
本文关键字:编程 方式更 MinWindowWidth VisualState AdaptiveTrigger XAML | 更新日期: 2023-09-27 18:21:48
我有一些VisualStates,我想在if语句中更改代码后面的AdaptiveTrigger
MinWindowWidth
。
视觉状态:
<VisualState x:Name="VisualState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1100"/>
</VisualState.StateTriggers>
....
</VisualState>
在代码后面应该是这样的:
if (Something == true)
{
VisualState1.SetValue(AdaptiveTrigger.MinWindowWidthProperty, 1370);
}
我不知道为什么,但它不起作用,所以我希望你能帮助我。
引用VisualState
本身不会起到作用。您所引用的属性属于AdaptiveTrigger
。
<VisualState x:Name="VisualState">
<VisualState.StateTriggers>
<!-- For better reference in code behind, include VisualState name -->
<AdaptiveTrigger x:Name="TriggerOfVisualState"
MinWindowWidth="1100"/>
</VisualState.StateTriggers>
....
</VisualState>
请注意:
设置新值的方式类似于设置附加特性
只有当属性实际上是附加属性(例如Grid.Row
)时,才应该这样设置它们。否则使用直接属性访问器:
TriggerOfVisualState.MinWindowWidth = 1370;
这应该做到:
<VisualState>
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="MyTrigger" MinWindowWidth="1100"/>
</VisualState.StateTriggers>
....
</VisualState>
和代码背后:
MyTrigger.MinWindowWidth = 1370;
如果使用MVVM或其他数据绑定,也可以使用{Binding myMinWidth}
作为MinWindowWidth
属性值。