绑定画布.顶部和面板.ZIndex编程
本文关键字:ZIndex 编程 和面板 顶部 绑定 | 更新日期: 2023-09-27 18:16:04
如何仅通过c#代码绑定对象的Canvas.Top
和Panel.ZIndex
属性?我想得到一个元素越小,它的ZIndex
就越高。我对WPF有点陌生,所以我不知道怎么做。
您可以创建如下所示的Binding。Path
字符串中的括号是必需的,因为源属性是附加属性。
element.SetBinding(Panel.ZIndexProperty,
new Binding
{
RelativeSource = RelativeSource.Self,
Path = new PropertyPath("(Canvas.Top)")
});
你也可以像这样直接将源DependencyProperty传递给PropertyPath构造函数:
element.SetBinding(Panel.ZIndexProperty,
new Binding
{
RelativeSource = RelativeSource.Self,
Path = new PropertyPath(Canvas.TopProperty)
});
从double
到int
的转换由框架隐式完成。然而,如果您需要一些"缩放"因子,您还必须添加绑定转换器。
你可以试试:
<Canvas>
<Border Panel.ZIndex="{Binding Location, Converter={StaticResource DoubleToIntConverter}}" Canvas.Top="{Binding Location}"/>
</Canvas>
DoubleToIntConverter是一个接受Double类型并返回int类型的转换器。Location是存储在ViewModel中的Double。