[英]WPF ribbon application menu placement wrong
我有一個WPF應用程序,它使用來自Microsoft的System.Windows.Controls.Ribbon程序集的Ribbon控件。 應用程序菜單在我們的大多數計算機上都能正確呈現,但是在Surface Pro上,菜單項的位置不佳。 我想知道為什么Surface Pro表現出不同的行為,以及我可以嘗試其他哪些步驟。
首先,這是一些簡單的XAML,可用於重現該問題(但僅限於Surface Pro):
<RibbonWindow x:Class="RibbonMenuTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<Ribbon DockPanel.Dock="Top" UseLayoutRounding="True" Background="#98C1F6" >
<Ribbon.ApplicationMenu>
<RibbonApplicationMenu>
<RibbonApplicationMenuItem Header="Menu item 1">
<RibbonApplicationMenuItem Header="Menu item 1.1" />
<RibbonApplicationMenuItem Header="Menu item 1.2" />
</RibbonApplicationMenuItem>
<RibbonApplicationMenuItem Header="Menu item 2">
<RibbonApplicationMenuItem Header="Menu item 2.1" />
<RibbonApplicationMenuItem Header="Menu item 2.2" />
</RibbonApplicationMenuItem>
<RibbonApplicationMenuItem Header="Menu item 3" />
<RibbonApplicationMenuItem Header="Menu item 4" />
</RibbonApplicationMenu>
</Ribbon.ApplicationMenu>
</Ribbon>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Main content area" />
</DockPanel>
</RibbonWindow>
但是菜單在Surface Pro(也運行Windows 10)上的位置奇怪:
首先,我嘗試通過更改顯示器的DPI設置(100%=> 150%)以匹配Surface,在開發機器上重現該問題。 這行不通; 該應用程序仍然可以正常運行。
接下來,我嘗試使用自定義樣式覆蓋菜單彈出窗口的位置:
<RibbonApplicationMenuItem.Resources>
<Style TargetType="Popup">
<Setter Property="Placement" Value="Right" />
</Style>
</RibbonApplicationMenuItem.Resources>
在Surface上,菜單似乎完全忽略了Placement屬性。 使用相同的樣式,我可以調整HorizontalOffset和VerticalOffset屬性,但是似乎忽略了我嘗試對PlacementTarget進行的任何更改。 我嘗試將彈出窗口相對於頂級窗口定位,但似乎忽略了我的首選放置目標,並始終使用父菜單項。
有人遇到過這個問題嗎? 並希望知道如何解決它?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.