【问题标题】:insert Ribbon user controls WPF插入功能区用户控件 WPF
【发布时间】:2016-05-22 10:55:54
【问题描述】:

我有一个使用 MetroWindow 的应用程序。 我这样声明我的 MainWindow:

<MahApps:MetroWindow

在 MainWindow.xaml.cs 中:

public partial class MainWindow : MetroWindow

现在我想在应用程序中集成一个功能区菜单。 我为功能区菜单创建了一个用户控件,并将它集成到我的应用程序页面中。

<UserControl x:Class="Nine.Views.Controls.RibbonBar"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:Nine.Views.Controls"
         mc:Ignorable="d" 
         Height="120.213" Width="1263.298">

    <!-- menu bar-->
    <Grid>
        <Ribbon >
            <Ribbon.ApplicationMenu>
                <RibbonApplicationMenu  >
                    <RibbonApplicationMenuItem Header="Bonjour" />
                    <RibbonSeparator />
                    <RibbonApplicationMenuItem Header="Exit" Command="Close" />
                </RibbonApplicationMenu>
            </Ribbon.ApplicationMenu>

            <RibbonTab Header="Home">
                <RibbonGroup Header="Clipboard">
                <RibbonButton Command="Paste" Label="Paste"
                LargeImageSource="Images/paste.png" />
                <RibbonButton Command="Cut" SmallImageSource="Images/cut.png" />
                <RibbonButton Command="Copy" SmallImageSource="Images/copy.png" />
                <RibbonButton Command="Undo" LargeImageSource="Images/undo.png" />
            </RibbonGroup>

            </RibbonTab>



        </Ribbon>
    </Grid>

当我运行应用程序时,功能区用户控件的 InitializeComponent() 中出现异常。 我认为我应该将主窗口更改为 RibbonWindow :

在 Mainwindow.xaml 中:

<RibbonWindow

在 MainWindow.xaml.cs 中:

public partial class MainWindow : RibbonWindow

但 Visual Studio 告诉我“MainWindow”类不能有多个基类:“MetroWindow”和“RibbonWindow”。

除此之外,当我从功能区 UC 中删除 RibbonTab 时,它可以工作。

有人可以帮助我吗?

【问题讨论】:

  • 您的 XAML 和您的代码隐藏必须与您的窗口类型一致,MetroWindowRibbonWindow,否则您会收到 多个基类 警告。
  • 那么我该如何解决这个问题呢?在我的应用程序中,我想同时使用 Ribbon 和 Metro。我可以从集成 Ribbon UserControl 的页面中引用 Ribbon 吗?

标签: c# wpf xaml ribbon


【解决方案1】:

某些东西仍在引用 MetroWindow 控件。但是没有足够的代码告诉你什么。

确保您引用的是 RibbonControlsLibrary。尝试添加 xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonCon‌​trolsLibrary" 然后做

【讨论】:

  • 我可以从页面中引用功能区 UserControl。我注意到没有 RibbonTab 它可以工作,但否则我得到一个例外'System.Windows.Markup.XamlParseException in PresentationFramework.dll' 在功能区用户控件的 InitializeComponent() 中。
  • 确保您引用的是 RibbonControlsLibrary。尝试添加 xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 然后执行
  • 是的,我试过了,但遇到了一些问题,比如无法识别程序集。我尝试了不同的方法,但它不起作用。我不认为这是解决方案,因为它识别所有功能区控件并且功能区菜单出现在 xaml 设计器中。
  • 你试过用
  • 这正是我的问题。我不能这样做,因为主窗口不能有多个基类。
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多