使用ContentPresenter,不使用ContentControl
2024-09-27 04:18:31
参考: https://wpf.2000things.com/2017/04/06/1204-using-a-datatrigger-to-change-content-in-a-contentpresenter/
<Window.Resources>
<DataTemplate x:Key="DefaultContent">
<StackPanel>
<TextBlock Margin="10" Text="Some default content here.."/>
<TextBlock Margin="10" Text="Maybe show progress for operation"/>
</StackPanel>
</DataTemplate> <DataTemplate x:Key="AllDoneContent">
<StackPanel>
<TextBlock Margin="10" Text="** This is the ALL DONE content..."
Foreground="Green"/>
<TextBlock Margin="10" Text="Put anything you like here"/>
<Button Margin="10" Content="Click Me" HorizontalAlignment="Left"/>
</StackPanel>
</DataTemplate> <Style x:Key="MyContentStyle" TargetType="ContentPresenter">
<Setter Property="ContentTemplate" Value="{StaticResource DefaultContent}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding JobDone}" Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource AllDoneContent}"/>
</DataTrigger>
</Style.Triggers>
</Style> </Window.Resources> <Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions> <ContentPresenter Grid.Row="0" Style="{StaticResource MyContentStyle}" Content="{Binding}"/> <Separator Grid.Row="1"/> <CheckBox Grid.Row="2" Margin="10" Content="Mark job done" IsChecked="{Binding JobDone}"/>
</Grid>
ContentControl通过DataTrigger进行切换模板时,原来绑定的模板会引发DataContext事件
最新文章
- 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决
- Differences Between Xcode Project Templates for iOS Apps
- delphi 中怎么知道某一个月有多少天
- 使用lua给wireshark编写uTP的Dissector
- C#一般处理程序获取Session
- C++ - new与malloc的差别
- BZOJ 1025 SCOI2009 游戏 动态规划
- 最受欢迎web前端技术总结
- Android:ADB server didn&#39;t ACK或者adb server is out of date. killing解决办法
- Freemarker中如何遍历List
- 随心测试_软测基础_001<;说在开始_测试理念>;
- 04--STL序列容器(Stack和Queue)
- linux c 编程 ------ 通过设备节点调用驱动
- Proxy 示例
- mysql安装后初始密码
- Swing文本域的编辑
- laravel5.1接收ajax数据
- 跟我学Spring3(9.2):Spring的事务之事务管理器
- 原创:微信小程序+WEB使用JS实现注册【60s】倒计时功能
- 关于Unity中的碰撞检测和管理(2D)
热门文章
- DBCA Does Not Display ASM Disk Groups In 11.2
- requirejs——config
- PHP 性能优化之 PHP-FPM
- jar 运行报错:找不到或无法加载主类
- Ajax 简单实例,其实就是js里面内容有些不同而已(转载)
- 75. Sort Colors (Array)
- 410. Split Array Largest Sum 把数组划分为m组,怎样使最大和最小
- Java 面试知识点汇总
- linux系统如何安装vmware Tools(下面以CentOS为例)
- java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。