C# WPF窗口边框与功能区控件一起使用

C# WPF窗口边框与功能区控件一起使用,c#,wpf,xaml,prism,ribbon,C#,Wpf,Xaml,Prism,Ribbon,我在WPF中使用Ribbon控件,我注意到有两个不同的版本 使用Microsoft.Windows.Controls.Ribbon 如果我在我的xaml和类中使用这个,我的整个窗口将是一个非常旧的windows样式 使用System.Windows.Controls.Ribbon 如果我在我的xaml和类中使用这个,我的Ribbontabs会突然无法正确填充 当我同时使用它们时。为此: <ribbon:RibbonWindow x:Class="WPSDashboard.Views

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

  • 使用Microsoft.Windows.Controls.Ribbon

    • 如果我在我的xaml和类中使用这个,我的整个窗口将是一个非常旧的windows样式
  • 使用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>
    
    
    
    我的Ribbontabs将加载,但窗口现在如下所示:
    我无法单击关闭、最小化和最大化 我个人会,或者在边距上玩,或者做得更好,调查那条丝带的风格,并以有助于我的需要的方式改变它

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


    而不是标签
    谢谢你调查我的问题,但问题是我不能点击关闭按钮、最大化按钮和最小化按钮。是的,我可以看到,尝试通过使用Expression Blend for Visual Studio更改ribbon对象的样式来播放ribon或其边距的高度。由于某些原因,在使用时控件的行为不同:使用System.Windows.Controls.ribbon;图书馆。谢谢你的回答!我更改了上边距,现在它确实合适了。我觉得自己很愚蠢,因为我以前没有找到这个这会破坏功能区窗口的快速链接。这不是一个完整的解决方案。我不知道这是如何修复的,但我看到了你的评论,回到了这个老项目。我注意到我不必使用-22的边距,它就能工作。我将编辑我的答案。如果您再次尝试此解决方案,那就太好了。我编辑了答案。如果这在你的情况下不起作用,那么肯定是有别的地方出了问题。这只是我问题的一个解决办法。
    
    xmlns:r="clr-namespace:System.Windows.Controls.Ribbon;assembly=System.Windows.Controls.Ribbon"
    
     <r:Ribbon x:Name="Ribbon" prism:RegionManager.RegionName="RibbonRegion" Margin="0,-22,0,0" >