回购:https://github.com/babakin34/ribbontest1/
我有一个 Main.xaml 和一个 MyRibbon.xaml 。
MyRibbon.xaml
<ribbon:Ribbon xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<ribbon:RibbonTab Header="">
<ribbon:RibbonMenuButton Label="Upload"/>
</ribbon:RibbonTab>
</ribbon:Ribbon>
MyRibbon.xaml.cs
public class MyRibbon : Ribbon {}
Main.xaml
<Grid>
<MyRibbon/>
</Grid>
问题是网格中显示了一个空的功能区。 (上传菜单不正确)
以下是整个项目快照:
答案 0 :(得分:1)
您的MyRibbon
课程与MyRibbon.xaml
文件之间没有自动连接。
如果要创建自定义控件,则应为其定义模板:
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>
另一种选择是简单地创建一个名为MyRibbon的UserControl
并将您的XAML标记放在MyRibbon.xaml文件中。然后,您可以像这样使用UserControl
:
<local:MyRibbon />
创建一个新的UserControl(项目 - &gt;添加新项目 - &gt;用户控件(WPF)并将其命名为&#34; MyRibbon&#34;。
使用以下内容替换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>
更改MyRibbon.xaml.cs中的基类:
public partial class MyRibbon : System.Windows.Controls.Ribbon.Ribbon
{
public MyRibbon()
{
InitializeComponent();
}
}
将控件添加到Main.xaml:
<local:MyRibbon />