ContentControl模型

ContentControl模型的类型具有一个 Content 属性。Content 属性的类型为 Object,因此,对于您在 ContentControl 中可以放置的内容没有任何限制。可以使用可扩展应用程序标记语言 (XAML) 或代码来设置 Content。以下控件使用 ContentControl 内容模型Button、ButtonBase、CheckBox、ComboBoxItem、ContentControl、Frame、GridViewColumnHeader、GroupItem、Label、ListBoxItem、ListViewItem、NavigationWindow、RadioButton、RepeatButton、ScrollViewer、StatusBarItem、ToggleButton、ToolTip、UserControl、Window

在Content中只能放置一个控件(可以放置一个容器,然后再在容器中放置多个控件)

严格地说,Content的内容应该放置于<XXX.Content></XXX.Content>内部,但也可以省略此标记。如在按钮中放置一图片可以有以下几种写法

<!--方法一-->

<Button Margin="5">

<Button.Content>

<Image Source="Images/DVD.png" Width="48" Height="48" />

</Button.Content>

</Button>

<!--方法二-->

<Button Margin="5">

<Image Source="Images/DVD.png" Width="48" Height="48" />

</Button>

<!--如果是字符串,或者是数组绑定、资源引用还可以-->

<Button Margin="5" Content="Button Text" />

另外,还可以使用代码来为ContentControl指定相应的Content属性,如

TextBlock date = new TextBlock();

date.Text = DateTime.Now.ToString("yyyy-MM-dd");

TextBlock time = new TextBlock()

time.Text = DateTime.Now.ToString("hh:mm:ss");

StackPanel panel = new StackPanel();

panel.Children.Add(date);

panel.Children.Add(time);

btn.Content = panel;

HeaderedContentControl模型

HeaderedContentControl类继承ContentControl类,表示带有Header的ContentControl,其除了具有ContentControl的Content属性外,还具有一个Header属性,Header的类型也是Object对象,与Content属性的用法类似从 HeaderedContentControl 继承的控件有:Expander、GroupBox、TabItem

如定义一个带有图片和文字标题的Expander

<Window x:Class="WPFControlContentModule.winHeaderedContentControl"    

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Headered Content Control" Height="200" Width="300">

<Canvas><Expander Margin="5" HorizontalAlignment="Center"><Expander.Header>

<StackPanel Orientation="Horizontal">

<Image Source="Images/Users.png" Width="32" Height="32" />

<TextBlock Text="User Info" VerticalAlignment="Center" />

</StackPanel>

</Expander.Header>

<Expander.Content>

<Grid>

<Grid.RowDefinitions>

<RowDefinition />

<RowDefinition />

<RowDefinition />

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition />

</Grid.ColumnDefinitions>                  

<TextBlock Text="UserName:" HorizontalAlignment="Right"

Grid.Row="0" Grid.Column="0" Margin="3"/>

<TextBlock Text="Tom" HorizontalAlignment="Left"

Grid.Row="0" Grid.Column="1" Margin="3"/>

<TextBlock Text="Gender:" HorizontalAlignment="Right"

Grid.Row="1" Grid.Column="0" Margin="3"/>

<TextBlock Text="Male" HorizontalAlignment="Left"

Grid.Row="1" Grid.Column="1" Margin="3"/>

<TextBlock Text="Age:" HorizontalAlignment="Right"

Grid.Row="2" Grid.Column="0" Margin="3"/>

<TextBlock Text="23" HorizontalAlignment="Left"

Grid.Row="2" Grid.Column="1" Margin="3"/>

</Grid></Expander.Content></Expander></Canvas></Window>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值