在 XAML 中设置 WPF ContextMenu 的 PlacementTarget 属性? [英] Setting a WPF ContextMenu's PlacementTarget property in XAML?

查看:43
本文介绍了在 XAML 中设置 WPF ContextMenu 的 PlacementTarget 属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<Button Name="btnFoo" Content="Foo" >
    <Button.ContextMenu Placement="Bottom" PlacementTarget="btnFoo">
        <MenuItem Header="Bar" />
    </Button.ContextMenu>
</Button>

给我一​​个运行时错误UIElement"类型没有公共 TypeConverter 类

gives me a runtime error 'UIElement' type does not have a public TypeConverter class

我也试过

<Button Name="btnFoo" Content="Foo" >
    <Button.ContextMenu Placement="Bottom" PlacementTarget="{Binding ElementName=btnFoo}">
        <MenuItem Header="Bar" />
    </Button.ContextMenu>
</Button>

然后将 ContextMenu 放在屏幕的左上角,而不是按钮

and that put the ContextMenu in the top left corner of my screen, rather than at the Button

推荐答案

您应该在按钮上设置 ContextMenuService.Placement 附加属性,如 ContextMenu.Placement.

You should be setting the ContextMenuService.Placement attached property on the button, as stated in the remarks in the documentation for ContextMenu.Placement.

<Button Name="btnFoo" Content="Foo" ContextMenuService.Placement="Bottom">
    <Button.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Bar" />
        </ContextMenu>
    </Button.ContextMenu>
</Button>

这篇关于在 XAML 中设置 WPF ContextMenu 的 PlacementTarget 属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆