我正在 WPF 的自定义控件库中创建导航抽屉或汉堡菜单(从侧面滑入的菜单),正如您所知,主题文件夹和类文件中有一个通用文件,通用文件描述了样式控件和具有控件依赖属性的类文件
因此,导航控件的样式在通用文件中定义,其依赖属性在名为 Navdrawer 的类中定义,navdrawer 菜单通过复选框的 ischecked 属性打开
主要问题是,在我要使用此自定义控件的项目中,安装了一个名为 MaterialDesignforXAML 的图标包,我想在复选框内插入一个切换按钮,但通过主项目,我不想安装完整的包在我的自定义控件中只有一个 ICON
<CheckBox x:Name="MenuBtn" Grid.Row="0" Margin="5, 15">
<CheckBox.Template>
<ControlTemplate TargetType="CheckBox">
<ContentControl Content="{Binding CBstyle}"/>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
public Object CBstyle
{
get { return (Object)GetValue(CBstyleProperty); }
set { SetValue(CBstyleProperty, value); }
}
public static readonly DependencyProperty CBstyleProperty =
DependencyProperty.Register("CBstyle",
typeof(Object), typeof(NavDrawer),
new PropertyMetadata(null));
主项目文件
<nb:NavDrawer.CBstyle>
<ToggleButton x:Name="tglbtn"
Style="{DynamicResource MaterialDesignHamburgerToggleButton}"
Height="45" Margin="0,20,0,0" Width="45"
HorizontalAlignment="Center"
VerticalAlignment="Top"/>
</nb:NavDrawer.CBstyle>