我正在尝试更改 WPF 画布上组件的 Z 顺序,但它似乎并不作为 XAML 属性或方法存在于后面的代码中。
这是我的 XAML:
<UserControl x:Class="FrontendUI.Controls.RadialTracker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FrontendUI.Controls"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="500">
<Grid >
<Canvas x:Name="TrackerCanvas">
</Canvas>
</Grid>
Run Code Online (Sandbox Code Playgroud)
起初我试图以编程方式执行此操作:
然后我尝试使用 XAML 添加一个路径并设置 Canvas.ZIndex,它也不存在。虽然有 Panel.ZIndex,但我假设这是指 UI 中更高的内容(网格或用户控件本身?)
不知道如何继续。有谁知道为什么会这样?
Canvas 继承自 Panel。Panel.SetZIndex() 是一个静态方法,而 Panel.ZIndex 是一个附加属性,这就是您在 xaml 中看不到它的原因。
在 xaml 中为子组件设置 ZIndex。
<Canvas >
<Button Content="Button" Panel.ZIndex="1" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)
在后面的代码中为子组件设置 Zindex。
Canvas.SetZIndex(control, index);
Run Code Online (Sandbox Code Playgroud)
你说“虽然有 Panel.ZIndex,但我假设这是指 UI 中更高的部分(网格,或用户控件本身?)”
你的假设是错误的。要实现您的要求,您需要设置 Panel.ZIndex
你问:但他们都使用Canvas.ZIndex,有谁知道为什么会这样?
因为 ZIndex 是附加属性(而不是常规依赖属性)。
| 归档时间: |
|
| 查看次数: |
5250 次 |
| 最近记录: |