WPF控件结构与Content理解
WPF控件结构
WPF中控件继承图
- 我们平时所用的容器如Grid、StackPanel等都是继承Panel
- 控件类型分为3组:内容控件、Items控件、TextBoxBase
如何理解Content?
凡是继承ContentControl的控件,定义内容为Content,除了TextBlock用text以外,大部分都是用Content设置显示类容。
一个窗体(容器、控件)只能有一个Content,比如
<CheckBox > <CheckBox.Content> <StackPanel Orientation="Horizontal"> <TextBlock Text="❤"/> <TextBlock Text="Hello"/> </StackPanel> </CheckBox.Content> </CheckBox>
以Button为例,如果用Content(是Object类型的),则可以呈现出更为复杂的东西,里面可以放一个容器,比如:
<Button Width="80" Height="30"> <Button.Content> <StackPanel Orientation="Horizontal"> <TextBlock Text="❤"/> <TextBlock Text="Hello"/> </StackPanel> </Button.Content> </Button>
结果如下:
继承Control的大部分控件具备Padding属性,TextBlock则单独实现了内边距
Margin:外边距。表示控件上下左右离其他控件的距离。
Padding:内边距。比如Button,其Content离Boder的距离就是内边距。