内容控件

内容控件: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="&#xec80;" 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"  有# 没有后缀名。

 
原文地址:https://www.cnblogs.com/codinghard/p/15643883.html