我有一个 XAML,包含如下信息:
... Margin="10,20,30,40" ...
我知道在装订中设置左边距非常容易,如下所示:
Margin="{Binding margin_value}"
...但这不会填写值“20, 30, 40”。
我在互联网上搜索的每个地方都看到相同的答案:
您正在寻找顶部、左侧、底部和右侧。为了填写这些内容,这里是 C# 代码。
我对 C# 代码不感兴趣,我想直接在 XAML 中将其设置为绑定结果,但我尝试的所有方法(
Margin.X="{Binding ...}"
、Margin.Left="{Binding ...}"
、Left.Margin="{Binding ...}"
,...)似乎都不起作用,尽管我相信这应该很容易。
有人知道怎么做吗?
预先感谢
您可以根据需要指定四个厚度属性中的任意数量或数量,可以是
Left
、Top
、Left
或 Buttom
中的一个、两个、三个或四个。
Margin
或其他 Thickness
类型属性的 WPF 内置转换器采用 1、2 或 4 个参数,但不是 3 个。
<TextBox Text="Hello">
<TextBox.Margin>
<Thickness Left="8" Top="2" Bottom="2" /><!-- Right missing -->
</TextBox.Margin>
</TextBox>
<TextBox Text="Hello">
<TextBox.Margin>
<Thickness Right="10" /><!-- Left Top Bottom -->
</TextBox.Margin>
</TextBox>
但正如已经说过的,这只是指定此标记的一种冗长方法:
<TextBox Text="Hello" Margin="8 2 0 2" />
<TextBox Text="Hello" Margin="0 0 10 0" />
此外,厚度只是一个普通的结构体,它没有依赖属性。因此,您无法绑定到指定的四维属性。 结论:使用内置类型转换器并指定所有 4 个速记不能满足您需求的值。