我有一个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 ...}"
,...)似乎都不起作用,尽管我相信它应该非常容易。
有人知道怎么做吗?
Thanks in advance
2条答案
按热度按时间dbf7pr2w1#
您可以根据需要指定四个厚度属性中的几个或多个,可以是
Left
、Top
、Left
或Buttom
中的一个、两个、三个或四个。然而,省略一个只会隐式地使它保持0的值。
所以你得到的只是不写0。
Margin
或其他Thickness
类型的属性的WPF内置转换器需要1,2或4个参数,但不是3个。当你指定一个或两个时,它只是一个简写,所有四个值都将被应用。
因此,如果你不想指定其中一个,你可以用一个更详细的语法来命名属性:
字符串
但正如已经说过的,这只是一种指定此标记的冗长方法:
型
此外,thickness只是一个普通的结构体,它没有依赖属性,所以你不能绑定到指定的四维属性。结论:使用内置的类型转换器,指定所有4个值,其中简写不能满足你的要求。
r1zhe5dt2#
您想要的语法可以通过如下所示的附加属性实现。
您可以添加顶部,右,底部,或其他东西。