WPF绑定上下文菜单

发布于 2024-10-01 03:35:30 字数 935 浏览 0 评论 0原文

在我的主视图中,我有一个可用于缩放应用程序的滑块。

<Slider x:Name="zoomSlider" VerticalAlignment="Center" Value="1" IsSnapToTickEnabled="True" TickFrequency="0.2" TickPlacement="Both" Minimum="0.5" Maximum="3" SmallChange="0.5" LargeChange="0.5" Width="100" />

每个控件都相应地进行了比例转换:

<Controls:AutoHidePanel AutoHide="False" AutoFade="True" Height="50" Orientation="Horizontal">
            <Controls:AutoHidePanel.LayoutTransform>
                <ScaleTransform
                ScaleX="{Binding Value, ElementName=zoomSlider}"
                ScaleY="{Binding Value, ElementName=zoomSlider}"/>
            </Controls:AutoHidePanel.LayoutTransform>
            <MenuControl />
        </Controls:AutoHidePanel>

这工作得很好:像这样,我的窗口中的每个控件都可以很好地缩放。

现在,MenuControl 是一个具有拆分按钮的视图,该拆分按钮使用上下文菜单来显示子项目。按钮本身也会缩放,但上下文菜单不会缩放。

我如何确保此上下文菜单与其按钮控件一起缩放?

in my main view, I have a slider that can be used to scale the application.

<Slider x:Name="zoomSlider" VerticalAlignment="Center" Value="1" IsSnapToTickEnabled="True" TickFrequency="0.2" TickPlacement="Both" Minimum="0.5" Maximum="3" SmallChange="0.5" LargeChange="0.5" Width="100" />

and every control is scale-transformed accordingly:

<Controls:AutoHidePanel AutoHide="False" AutoFade="True" Height="50" Orientation="Horizontal">
            <Controls:AutoHidePanel.LayoutTransform>
                <ScaleTransform
                ScaleX="{Binding Value, ElementName=zoomSlider}"
                ScaleY="{Binding Value, ElementName=zoomSlider}"/>
            </Controls:AutoHidePanel.LayoutTransform>
            <MenuControl />
        </Controls:AutoHidePanel>

This works fine: like this every control in my windows scales fine.

Now, the MenuControl is a view that has a splitbutton, and this splitbutton uses a context menu to display sub items. The button itself scales too, but the context menu does not scale.

How can I make sure that this context menu scales together with its button control?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女的英雄梦 2024-10-08 03:35:30

同时我找到了解决办法。我只是将上下文菜单的数据上下文设置为其父数据上下文,如下所示:

<ContextMenu DataContext="{Binding RelativeSource={RelativeSource Mode=Self}, Path=PlacementTarget.DataContext}">

Meanwhile I found a solution. I just set the data context of the context menu to its parent data context like:

<ContextMenu DataContext="{Binding RelativeSource={RelativeSource Mode=Self}, Path=PlacementTarget.DataContext}">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文