内容控件
内容控件:ContentControl
可以包含显示内容,可以包含单个控件 (布局控件可以包含多个,内容控件最多只能包含一个子元素),因此如果包含多个元素的话,可以先放在布局容器中,再将布局容器放在内容控件中。
- Content 属性 :内容控件可以包含显示内容,可以包含单个控件 (布局控件可以包含多个,内容控件最多只能包含一个子元素),因此如果包含多个元素的话,可以先放在布局容器中,再将布局容器放在内容控件中。
- 对齐内容 :HorizontalContentAlignment (控件里的 内容对齐) VerticalContentAlignment 同理 类比 (HorizontalAlignment 和 VerticalAlignment 对控件整体的操作 )
- 相关控件
- 标签Lable :支持记忆符(本质是能被链接的控件,是焦点的快捷键) 有一个target属性,需要指向另一个控件的绑定的表达式。
<Label Name="labe1" Target="{Binding ElementName=textbox5}">Choose _A</Label> <TextBox x:Name="textbox5" Margin="5"></TextBox>
_A 中_表示快捷键,编写Windows窗体 一般快捷键用&,但是&不能用于XAML。所有的记忆符都是用Alt 和已经工作的快捷键工作??? ——(按Alt + A 会转移焦点到 TextBox)。快捷键字符通常是隐藏的,直到用户 按下了 Alt键才显示。
按下Alt键
按下A 焦点转移到文本框
- 按钮Button:
IsCancel 属性 设置 IsCancel 属性为True 相当于 按下ESC 键的时候触发 对应的 Click 事件
IsDefault 属性 设置 IsDefault 属性为True 相当于 焦点不在某个控件上时,默认在改控件上. (回车执行click事件)
- CheckBox 的isCheck属性 IsThreeState="True" 可以为未勾选状态
<CheckBox Content="CheckBox1" x:Name="CheckBox1" IsChecked="{x:Null}" IsThreeState="True"/> <CheckBox Content="CheckBox2" x:Name="CheckBox2" IsChecked="True"/>
- RadioButton:
同一个容器下的RadioButton 相互排斥,只能有一个被勾选 (可以理解为 ABCD 单选题)。不同容器下不会相互排斥。
如果想不同容器下相互排斥需要设置 GroupName 相同
- 工具提示
- ToolTip属性(一个内容控件,可以放置任何可视化元素)——表现为鼠标停留所出现的提示框。
简单方法:直接在元素的属性中定义
<Button x:Name="button1" IsCancel="True" Click="button1_Click" ToolTip="this is my ToolTip">Button1</Button>
需要提供更复杂的提示:例如嵌套元素的组合,就将ToolTip作为单独元素,使用嵌套的元素属性。可以设置ToolTip的背景色,出现的位置。
<Button x:Name="button4" IsDefault="True" Click="button4_Click" > <Button.Content>Button4</Button.Content> <Button.ToolTip > <!--<ToolTip Background="Coral" Placement="Absolute" HorizontalOffset="25" VerticalOffset="50">--> <ToolTip Background="Coral" Placement="Mouse" HorizontalOffset="5"> <StackPanel> <TextBlock>Image and text</TextBlock> <TextBlock Text="" FontFamily="../Assets/Font/#iconfont" FontSize="30"/> </StackPanel> </ToolTip> </Button.ToolTip> </Button>
以鼠标基准,相对偏移5个像素。
<ToolTip Background="Coral" Placement="Mouse" HorizontalOffset="5">
以Windows窗体,绝对偏移,可以出现在app窗口外。
<ToolTip Background="Coral" Placement="Absolute" HorizontalOffset="25" VerticalOffset="50">
- Popup 控件 PopupTest
<Grid Margin="10"> <TextBlock TextWrapping="Wrap">You can use a Popup to provide a link for a specific <Run TextDecorations="Underline" MouseEnter="Run_MouseEnter"> term </Run> of the interest </TextBlock> <Popup x:Name="popLink" StaysOpen="False" Placement="Mouse" MaxWidth="200" PopupAnimation="Slide" AllowsTransparency="True"> <Border BorderBrush="BlueViolet" BorderThickness="2" Background="AliceBlue"> <TextBlock Margin="10" TextWrapping="Wrap"> For more information, see <Hyperlink NavigateUri="https://www.cnblogs.com/codinghard/" Click="Hyperlink_Click">my blog</Hyperlink> </TextBlock> </Border> </Popup> </Grid>
Run用来格式化 textBlock中特定的部分
Hyperlink 可以提供一块可以单击的文本(超链接)
private void Run_MouseEnter(object sender, MouseEventArgs e) { popLink.IsOpen = true; } private void Hyperlink_Click(object sender, RoutedEventArgs e) { //打开浏览器,指向对应路径 Process.Start(((Hyperlink)sender).NavigateUri.ToString()); }
注意:
引入ttf文件时候的格式 : FontFamily="../Assets/Font/#iconfont" 有# 没有后缀名。