// 以Button为例子
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="80"></RowDefinition>
<RowDefinition Height="80"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<!--按钮有Button.Content,里面放置内容-->
<Button Grid.Column="0" Grid.Row="0">
<Button.Content>
<TextBlock FontSize="32">我是一个有Content按钮</TextBlock>
</Button.Content>
</Button>
<!--省略Button.Content-->
<Button Grid.Column="0" Grid.Row="1">
<TextBlock FontSize="32">我是一个省略Content按钮</TextBlock>
</Button>
<!--放置一个人容器放置多个内容-->
<Button Grid.Column="0" Grid.Row="2">
<!--<Button.Content>-->
<StackPanel>
<TextBlock FontSize="32">我是一个文本</TextBlock>
<Image Source="1.png" Height="80"></Image>
<Label FontSize="32">我是一个Label</Label>
</StackPanel>
<!--</Button.Content>-->
</Button>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<!--TabControl 的TabItem里设置标头-->
<TabControl Grid.Row="0" Grid.Column="0">
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<Ellipse Width="10" Height="10" Fill="Red"/>
<TextBlock>我是一个有标头的tab</TextBlock>
</StackPanel>
</TabItem.Header>
<!--TabItem.Content 可以省略-->
<!--<TabItem.Content>-->
<StackPanel>
<TextBlock>这里是tab 的内容</TextBlock>
<Button Content="这里放置了一个按钮"></Button>
</StackPanel>
<!--</TabItem.Content>-->
</TabItem>
</TabControl>
<!--GroupBox 设置标头-->
<GroupBox Grid.Row="1" Grid.Column="0">
<GroupBox.Header>
<TextBlock>这里是GroupBox 的标头</TextBlock>
<!--多个控件,外面需要包裹一个容器-->
<!--<StackPanel Orientation="Horizontal">
<Ellipse Width="10" Height="10" Fill="Red"/>
<TextBlock>这里是GroupBox 的标头</TextBlock>
</StackPanel>-->
</GroupBox.Header>
<!--GroupBox.Content 可以省略-->
<!--<GroupBox.Content>-->
<StackPanel>
<TextBlock>这里是GroupBox的内容</TextBlock>
</StackPanel>
<!--</TabItem.Content>-->
</GroupBox>
</Grid>
// ListBox 使用ItemsSource填充数据集
<Grid>
<!--使用ItemsSource填充-->
<ListBox x:Name="listBoxs"></ListBox>
</Grid>
// ItemsSource 绑定
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;
namespace WpfControlApp
{
/// <summary>
/// ItemsControl.xaml 的交互逻辑
/// </summary>
public partial class ItemsControl : Window
{
public ItemsControl()
{
InitializeComponent();
// 设置绑定的数据源
Binding binding = new Binding();
//绑定源
binding.Source = TextBlockItems;
//设置绑定
listBoxs.SetBinding(ListBox.ItemsSourceProperty, binding);
}
/// <summary>
/// Source对象集合
/// </summary>
private List<TextBlock> TextBlockItems
{
get
{
List<TextBlock> result = new List<TextBlock>();
// 遍历系统的所有字体
foreach (FontFamily family in Fonts.SystemFontFamilies)
{
foreach (KeyValuePair<XmlLanguage, string> pair in family.FamilyNames)
{
TextBlock t = new TextBlock();
// 设置字体名称
t.Text = pair.Value;
// 设置字体样式
t.FontFamily = family;
t.FontSize = 12;
result.Add(t);
}
}
// 返回一个 TextBlock 的控件对象集合
return result;
}
}
}
}
// ListBox 使用Items 填充数据集
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<!--使用Items方式-->
<ListBox Grid.Row="0" Grid.Column="0">
<ListBox.Items>
<ListBoxItem>
<TextBlock>我是ListBoxItem第1行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是ListBoxItem第2行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是ListBoxItem第3行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是ListBoxItem第4行</TextBlock>
</ListBoxItem>
</ListBox.Items>
</ListBox>
<!--省略ListBox.Items-->
<ListBox Grid.Row="1" Grid.Column="0">
<ListBoxItem>
<TextBlock>我是省略ListBox.Items第1行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是省略ListBox.Items第2行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是省略ListBox.Items第3行</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>我是省略ListBox.Items第4行</TextBlock>
</ListBoxItem>
</ListBox>
<!--省略ListBoxItem-->
<ListBox Grid.Row="2" Grid.Column="0">
<ListBox.Items>
<TextBlock>我是省略ListBoxItem第1行</TextBlock>
<TextBlock>我是省略ListBoxItem第2行</TextBlock>
<TextBlock>我是省略ListBoxItem第3行</TextBlock>
<TextBlock>我是省略ListBoxItem第4行</TextBlock>
</ListBox.Items>
</ListBox>
</Grid>
<Grid>
<!-- TreeView 设置两个根节点, 默认展开所有的Item 设置 IsExpanded="True"-->
<!--每个TreeViewItem都有一个头和一个Items集合-->
<TreeView>
<TreeView.Items>
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="树的根节点1" />
</TreeViewItem.Header>
<TreeViewItem.Items>
<TextBlock Text="树的节点1- 1" />
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="树的节点1- 2" />
</TreeViewItem.Header>
<TreeViewItem.Items>
<TextBlock Text="树的节点1- 2 - 1" />
<TextBlock Text="树的节点1- 2 - 2" />
<TextBlock Text="树的节点1- 2 - 3" />
</TreeViewItem.Items>
</TreeViewItem>
</TreeViewItem.Items>
</TreeViewItem>
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="树的节点2" />
</TreeViewItem.Header>
<TreeViewItem.Items>
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="树的节点2- 1" />
</TreeViewItem.Header>
<TreeViewItem.Items>
<TextBlock Text="树的节点21 - 1" />
<TextBlock Text="树的节点2 1 - 2" />
<TextBlock Text="树的节点2 - 3" />
</TreeViewItem.Items>
</TreeViewItem>
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="树的节点2 - 2" />
</TreeViewItem.Header>
<TreeViewItem.Items>
<TextBlock Text="树的节点2- 2 - 1" />
<TextBlock Text="树的节点2- 2 - 2" />
<TextBlock Text="树的节点2 - 2 - 3" />
</TreeViewItem.Items>
</TreeViewItem>
</TreeViewItem.Items>
</TreeViewItem>
</TreeView.Items>
</TreeView>
</Grid>
公众号“点滴分享技术猿”