WPF 窗口边框在功能区控件中表现得很奇怪

MCo*_*ard 4 c# wpf xaml ribbon prism

我在 WPF 中使用 Ribbon 控件,我注意到有 2 个不同的版本。

  1. 使用 Microsoft.Windows.Controls.Ribbon;

    • 如果我在我的 xaml 和类中使用这个,我的整个窗口将采用非常旧的窗口样式。
  2. 使用 System.Windows.Controls.Ribbon;

    • 如果我在我的 xaml 和类中使用这个,我的 Ribbontabs 突然将不再正确填充。

当我同时使用它们时。有了这个:

<ribbon:RibbonWindow x:Class="WPSDashboard.Views.ShellWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ribbon="clr-namespace:System.Windows.Controls.Ribbon;assembly=System.Windows.Controls.Ribbon"
        xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 
        xmlns:prism="clr-namespace:Microsoft.Practices.Prism.Regions;assembly=Microsoft.Practices.Prism" 
        Title="WPSDashboard"
        x:Name="RibbonWindow"
        Width="640" Height="480">


    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!-- Ribbon Region -->
        <r:Ribbon x:Name="Ribbon" prism:RegionManager.RegionName="RibbonRegion">
            <r:Ribbon.ApplicationMenu>
                <r:RibbonApplicationMenu SmallImageSource="Images\SmallIcon.png">
                    <r:RibbonApplicationMenuItem Header="Exit"
                                                      x:Name="MenuItemExit"
                                                      ImageSource="Images\Exit.png"
                                                      Command="{Binding ExitCommand}"/>
                    </r:RibbonApplicationMenu>
            </r:Ribbon.ApplicationMenu>
        </r:Ribbon>

        <Grid x:Name="ClientArea" Grid.Row="1">                   

            <!-- Workspace Region-->
            <GridSplitter HorizontalAlignment="Left" Width="2" Grid.Column="1"/>
            <ContentControl x:Name="WorkspaceRegion" Grid.Column="1" prism:RegionManager.RegionName="WorkspaceRegion" />
        </Grid>

    </Grid>
    </ribbon:RibbonWindow>
Run Code Online (Sandbox Code Playgroud)

我的 Ribbontabs 将加载,但窗口现在看起来像这样:我无法单击关闭并最小化和最大化。<---

截屏

我怎样才能让边框变得正常而不是小?
我不能这样关窗户。

MCo*_*ard 5

我找到了让它看起来和工作良好的最佳方法!

而不是<ribbon:RibbonWindowxaml 开头的标记,而是Make it <Window
还要添加这部分:

xmlns:r="clr-namespace:System.Windows.Controls.Ribbon;assembly=System.Windows.Controls.Ribbon"
Run Code Online (Sandbox Code Playgroud)

然后在你的班级中删除你的: RibbonWindow(如果它在那里)

如果这不起作用并且您不需要快速访问工具栏,这可能会有所帮助:返回到您的 XAML,并将功能区边距更改为 -22 :

 <r:Ribbon x:Name="Ribbon" prism:RegionManager.RegionName="RibbonRegion" Margin="0,-22,0,0" >
Run Code Online (Sandbox Code Playgroud)

现在我的应用程序看起来像这样(-22 边距): 在此处输入图片说明

现在它看起来像一个没有丑陋的 Windows 98 或 2000 风格的普通应用程序,关闭按钮、minizime 按钮和最大化按钮又回来了!

  • 这破坏了功能区窗口的快速链接。这不是一个完整的解决方案。 (2认同)