我有一个Grid控件,我想在XAML中设置margin属性并将它们从SystemInformation.CaptionHeight
拉出来。我已经想出如何在C#中做到这一点,但我想在XAML中做到这一点。
我之前没有使用资源来设置这样的东西,但我尝试过类似
的变体<Grid>
<Grid.Margin>
<Thickness Top="{StaticResource {x:Static Forms:SystemInformation.CaptionHeight}}" Left="5" Right="5" Bottom="5" />
</Grid.Margin>
</Grid>
和
<Grid>
<Grid.Margin>
<Thickness Top="{x:Static Forms:SystemInformation.CaptionHeight}" Left="5" Right="5" Bottom="5" />
</Grid.Margin>
</Grid>
但无济于事。如何在运行时动态设置这样的属性?
答案 0 :(得分:1)
使用Binding,但指定Source是静态的并将其指向属性的位置
此外,Thickness.Top
不是DependencyProperty,因此您无法绑定它。您最好的替代方法是使用转换器绑定Grid.Margin
,转换器获取double值并将其转换为Thickness
属性。
<Grid Margin="{Binding
Source={x:Static Forms:SystemInformation.CaptionHeight},
Converter={StaticResource MyDoubleToMarginConverter}}" />