wpf使用usercontrol自定义标签
程序员文章站
2022-01-05 10:50:19
...
自定义标签
想向js一样自定义一个组件,过程很复杂,并没有js那样好操作,直接上代码吧,
<UserControl.ContentTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Background="#1979ca" Grid.Row="0">
<TextBox Name="title" Text="{Binding Header,ElementName=comstom}" Background="Transparent" HorizontalAlignment="Left"
Foreground="White" VerticalAlignment="Center" BorderThickness="0"/>
<Image Source="Resource/a.png" HorizontalAlignment="Right" Margin="6,0" Height="18" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
</Grid>
<ContentPresenter Content="{Binding}" Grid.Row="1" />
</Grid>
</DataTemplate>
</UserControl.ContentTemplate>
自定义属性
public static DependencyProperty HeaderProperty =
DependencyProperty.Register("Header", typeof(string), typeof(TitleWindow), new PropertyMetadata(""));
public string Header
{
get { return (string)GetValue(HeaderProperty); }
set{SetValue(HeaderProperty, value);}
}
讲解
使用模板contenttemplate,重写usercontrol,而不是在usercontrol里面直接加grid等标签,最后uesrcontrol的content通过
<ContentPresenter Content="{Binding}" Grid.Row="1" />
直接被转移到了一个新的节点上
或者通过loaded消息,在加载后,修改content的节点,否则同一个节点在两个父节点下会报错的。
上一篇: WPF 自定义控件操作自定义控件
下一篇: optional详解
推荐阅读
-
ThinkPHP模板自定义标签使用方法
-
基于JSP 自定义标签使用实例介绍
-
[WPF自定义控件库]使用TextBlockHighlightSource强化高亮的功能,以及使用TypeConverter简化调用
-
自定义标签的开发及使用自定义标签实现迭代foreach循环
-
JSP使用自定义标签防止表单重复提交的方法
-
[WPF 自定义控件]在MenuItem上使用RadioButton
-
WPF 使用WindowChrome自定义窗体样式
-
使用静态类实现JSP自定义标签
-
WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展
-
[WPF自定义控件库]使用WindowChrome的问题