WPF窗口边框与Ribbon Control一起表现得很奇怪

时间:2014-02-10 09:58:17

标签: c# wpf xaml prism ribbon

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

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

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

    • 如果我在我的xaml和class中使用这个,我的Ribbontabs突然无法正确填充。
  3. 当我同时使用它们时。有了这个:

    <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会加载,但窗口现在看起来像这样: 我无法点击关闭并最小化和最大化。 &lt; ---

    Screenshot

    如何让边框变得正常而不是小? 我无法以这种方式关闭窗户。

2 个答案:

答案 0 :(得分:4)

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

而不是xaml开头的标记<ribbon:RibbonWindow, 设为<Window 同时添加此部分:

xmlns:r="clr-namespace:System.Windows.Controls.Ribbon;assembly=System.Windows.Controls.Ribbon"

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

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

 <r:Ribbon x:Name="Ribbon" prism:RegionManager.RegionName="RibbonRegion" Margin="0,-22,0,0" >

现在我的应用程序看起来像这样(带有-22边距): enter image description here

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

答案 1 :(得分:1)

我个人会这样做,无论是利用边缘,还是更好,调查该功能区的风格并改变它以帮助我的需求