wpf使用usercontrol自定义标签
2023-04-18 12:44:06 时间
自定义标签
想向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的节点,否则同一个节点在两个父节点下会报错的。
相关文章
- 图解 | Epoll怎么实现的
- Linux 5.12 的 I/O 相关改动
- 聊聊 Wpf 数据绑定实例
- 微软累积更新导致Visual Studio、WPF等应用崩溃 修复补丁即将发布
- 工业私营5G如何帮助实现可持续和敏捷的工业运营
- 工业专用5G如何帮助实现可持续和灵活的工业运营
- 【面试】一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
- Kubernetes初探[1]:部署您的第一个ASP.NET Core应用到k8s集群
- .NET高性能编程 - C#如何安全、高效地玩转任何种类的内存之Span的本质(一)。
- .net环境下跨进程、高频率读写数据
- Golang的CSP很酷?其实.NET也可以轻松完成
- C# 在腾讯的发展
- .Net中的AOP系列之构建一个汽车租赁应用
- ASP.NET路由模型解析
- .NET基础拾遗(5)多线程开发基础
- 异步编程 In .NET
- .NET里简易实现AOP
- ASP.NET是如何在IIS下工作的
- Visual Studio 常用快捷键
- 关于领域驱动设计(DDD)中聚合设计的一些思考