C# 是否可以将Ribbon或RibbonTab放在单独的xaml文件中?
回购: 我有一个Main.xaml和一个MyRibbon.xaml 肉豆蔻C# 是否可以将Ribbon或RibbonTab放在单独的xaml文件中?,c#,wpf,xaml,ribbon,C#,Wpf,Xaml,Ribbon,回购: 我有一个Main.xaml和一个MyRibbon.xaml 肉豆蔻 <ribbon:Ribbon xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <ribbon:RibbonTab Header=""> <ribbon:RibbonMenuButton Label="Upload"/> </ribbon:Ribbon
<ribbon:Ribbon xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<ribbon:RibbonTab Header="">
<ribbon:RibbonMenuButton Label="Upload"/>
</ribbon:RibbonTab>
</ribbon:Ribbon>
Main.xaml
<Grid>
<MyRibbon/>
</Grid>
问题是网格中显示了一个空功能区。(上传菜单显示错误)
以下是整个项目的快照:
这对我很有用。
MyRibbon.xaml:
<ribbon:Ribbon x:Class="XFWPF.WPF.MyRibbon"
xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ribbon:RibbonTab Header="">
<ribbon:RibbonMenuButton Label="Upload"/>
</ribbon:RibbonTab>
</ribbon:Ribbon>
Main.xaml:请注意,uc对应于MyRibbon的名称空间(XFWPF.WPF)
您的
MyRibbon
类与MyRibbon.xaml
文件之间没有自动连接
如果要创建自定义控件,应为其定义模板:
<Ribbon x:Class="WpfApplication3.MyRibbon"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<RibbonTab Header="">
<RibbonMenuButton Label="Upload"/>
</RibbonTab>
</Ribbon>
<local:MyRibbon />
如果您有
,是否会显示任何内容?是的,如果我将MyRibbon.xaml的内容直接添加到Main.xaml中,我会得到预期的结果。我不熟悉wpf,但可能会将MyRibbon
类公开?MyRibbon类公开。MyRibbon.cs看起来如何?使用System.Windows.Controls.Ribbon;命名空间XFWPF.WPF.View{public partial class MyRibbon:Ribbon{public MyRibbon(){InitializeComponent();}}}}}关于我的信息,您没有收到编译错误吗?据我所知,您需要为它提供xmlns标记。您确定可以看到“Upload”吗菜单?我得到一个空功能区。我正在使用第二种方法,并在没有上载菜单的情况下获得一个空功能区。如果您有一个名为MyRibbon.xaml的文件和另一个名为MyRibbon.cs的文件,则不使用第二种方法。请再次阅读我的answeer并尝试创建一个UserControl。我正在按照您的建议进行操作,但上载菜单除外是Missing。请再次检查我的问题,我添加了整个项目的屏幕截图。当您将MyRibbon的内容设置为“下载”RibbonTab时,您正在覆盖它的内容。没关系。当我删除下载菜单并使用时,我仍然看不到任何上载菜单。
public class MyRibbon : Ribbon {}
<Grid xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid.Resources>
<Style TargetType="local:MyRibbon">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyRibbon">
<ribbon:Ribbon>
<ribbon:RibbonTab Header="">
<ribbon:RibbonMenuButton Label="Upload"/>
</ribbon:RibbonTab>
</ribbon:Ribbon>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<local:MyRibbon/>
</Grid>
<local:MyRibbon />
<Ribbon x:Class="WpfApplication3.MyRibbon"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<RibbonTab Header="">
<RibbonMenuButton Label="Upload"/>
</RibbonTab>
</Ribbon>
public partial class MyRibbon : System.Windows.Controls.Ribbon.Ribbon
{
public MyRibbon()
{
InitializeComponent();
}
}
<local:MyRibbon />