我有一个简单的按钮,我希望上下文菜单的宽度与按钮的宽度相同(我左键单击按钮打开按钮正下方的上下文菜单).
<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>
Run Code Online (Sandbox Code Playgroud)
我已在上下文菜单本身尝试了以下绑定,但它不起作用
<ContextMenu x:Name="cm" Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Button}}, Path=ActualWidth}">
Run Code Online (Sandbox Code Playgroud)
但是,我已经能够在代码中使用它了
btn.LayoutUpdated += (s, e) => cm.Width = btn.ActualWidth;
Run Code Online (Sandbox Code Playgroud)
我的问题是......是否存在可以获得此功能的xaml绑定?
ContextMenu有一个属性调用PlacementTarget,在这种情况下将是Button你可以尝试在路径中使用Binding
<ContextMenu x:Name="cm"
Width="{Binding RelativeSource={RelativeSource Self},
Path=PlacementTarget.ActualWidth}">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5258 次 |
| 最近记录: |