XAML VisualState AdaptiveTrigger MinWindowWidth 以编程方式更改
XAML VisualState AdaptiveTrigger MinWindowWidth change programmatically
我有一些 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>
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="MyTrigger" MinWindowWidth="1100"/>
</VisualState.StateTriggers>
....
</VisualState>
和代码隐藏:
MyTrigger.MinWindowWidth = 1370;
如果您使用 MVVM 或其他一些数据绑定,您还可以使用 {Binding myMinWidth}
作为 MinWindowWidth
属性 值。
引用 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;
我有一些 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>
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="MyTrigger" MinWindowWidth="1100"/>
</VisualState.StateTriggers>
....
</VisualState>
和代码隐藏:
MyTrigger.MinWindowWidth = 1370;
如果您使用 MVVM 或其他一些数据绑定,您还可以使用 {Binding myMinWidth}
作为 MinWindowWidth
属性 值。
引用 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;