gpt4 book ai didi

wpf - WPF Canvas 上没有 Canvas.ZIndex 或 SetZIndex() 属性

转载 作者:行者123 更新时间:2023-12-03 02:09:45 26 4
gpt4 key购买 nike

我正在尝试更改 WPF Canvas 上组件的 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>

起初我尝试以编程方式执行此操作:

enter image description here

然后我尝试使用 XAML 添加路径并设置 Canvas.ZIndex,但它也不存在。虽然有 Panel.ZIndex,但我假设这指的是 UI 中更高的东西(网格,或用户控件本身?)

enter image description here

不知道如何继续。有谁知道为什么会发生这种情况?

最佳答案

Canvas继承自Panel。 Panel.SetZIndex() 是一个静态方法,Panel.ZIndex 是一个附加属性,这就是您在 xaml 中看不到它的原因。

在xaml中为子组件设置ZIndex。

<Canvas >
<Button Content="Button" Panel.ZIndex="1" />
</Canvas>

在代码后面设置子组件的Zindex。

Canvas.SetZIndex(control, index);

You said "There was the Panel.ZIndex though, but I'm assuming this is referring to something higher in the UI (the grid, or User control itself?)"

你的假设是错误的。为了达到您的要求,您需要设置Panel.ZIndex

You asked : But they all use Canvas.ZIndex, Does anyone know why this is happening?

因为 ZIndex 是一个附加属性(而不是常规依赖属性)。

关于wpf - WPF Canvas 上没有 Canvas.ZIndex 或 SetZIndex() 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35058824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com