我在Windows 10上为Windows Classic桌面的Visual Studio 2017中创建了一个新的WPF应用程序。
我以下列方式将功能区添加到新应用程序中。 xaml代码:
<r:RibbonWindow x:Class="AKnowledgeBase.MainWindow"
xmlns:r1="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:AKnowledgeBase"
mc:Ignorable="d"
xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
xmlns:r2="clr-namespace:Microsoft.Windows.Controls.Ribbon.Primitives;assembly=RibbonControlsLibrary"
Title="AKnowledgeBase" Height="350" Width="525">
<DockPanel>
<r:Ribbon>
<r2:RibbonTabsPanel></r2:RibbonTabsPanel>
</r:Ribbon>
</DockPanel>
</r:RibbonWindow>
并更改基类:
public partial class MainWindow : RibbonWindow
{
public MainWindow()
{
InitializeComponent();
}
}
但结果应用程序窗口看起来很难看:
在上图中,您可以看到Explorer标题(它在Windows10中具有标准视图)和创建的应用程序标题(它看起来像Windows98样式的视图)。
为什么会发生以及如何解决?
UPD1 :
当我使用以下建议的System.Windows.Controls.Ribbon.dll时,主窗口左侧和右侧有蓝色文物:
此外,当我最大化此窗口时 - 会出现标题错误:
文本部分切割。
答案 0 :(得分:1)
添加对System.Windows.Controls.Ribbon.dll
的引用并尝试此XAML标记:
<RibbonWindow x:Class="AKnowledgeBase.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:r2="clr-namespace:System.Windows.Controls.Ribbon.Primitives;assembly=System.Windows.Controls.Ribbon"
mc:Ignorable="d"
Title="Window14" Height="300" Width="300">
<Grid>
<DockPanel>
<Ribbon>
<r2:RibbonTabsPanel></r2:RibbonTabsPanel>
</Ribbon>
</DockPanel>
</Grid>
</RibbonWindow>
您可能不需要RibbonWindow
:
<Window x:Class="AKnowledgeBase.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication7"
xmlns:r2="clr-namespace:System.Windows.Controls.Ribbon.Primitives;assembly=System.Windows.Controls.Ribbon"
mc:Ignorable="d"
Title="Window14" Height="300" Width="300">
<Grid>
<DockPanel>
<Ribbon>
<r2:RibbonTabsPanel></r2:RibbonTabsPanel>
</Ribbon>
</DockPanel>
</Grid>
</Window>
答案 1 :(得分:0)
您可能已经添加了一些基于主题的样式以及r,r1和r2引用。我建议您寻找一种方法来构建功能区,而不会覆盖默认样式。