gpt4 book ai didi

带有上下文菜单的 WPF 按钮,如何将上下文菜单宽度绑定(bind)到按钮的宽度?

转载 作者:行者123 更新时间:2023-12-05 00:04:54 25 4
gpt4 key购买 nike

我有一个简单的按钮,我希望上下文菜单的宽度与按钮的宽度相同(我正在左键单击按钮打开按钮正下方的上下文菜单)。

<Button x:Name="btn" Content="Push Me">
<Button.ContextMenu>
<ContextMenu x:Name="cm">
<MenuItem Header="One" />
<MenuItem Header="Two" />
<MenuItem Header="Three" />
</ContextMenu>
</Button.ContextMenu>
</Button>

我已经在上下文菜单本身上尝试了以下绑定(bind),但它不起作用
<ContextMenu x:Name="cm" Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Button}}, Path=ActualWidth}">

但是,我已经能够让它在代码中工作
btn.LayoutUpdated += (s, e) => cm.Width = btn.ActualWidth;

我的问题是......是否存在 xaml 绑定(bind),它将为我提供此功能?

最佳答案

ContextMenu有一个名为 PlacementTarget 的属性在这种情况下将是 Button所以你可以尝试在路径中使用 Binding

<ContextMenu x:Name="cm"
Width="{Binding RelativeSource={RelativeSource Self},
Path=PlacementTarget.ActualWidth}">

关于带有上下文菜单的 WPF 按钮,如何将上下文菜单宽度绑定(bind)到按钮的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158650/

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