WPF控制元件結構與Content理解

追忆呢發表於2024-08-16

WPF控制元件結構

WPF中控制元件繼承圖

1161656-20210126175728356-1415069891
  • 我們平時所用的容器如Grid、StackPanel等都是繼承Panel
  • 控制元件型別分為3組:內容控制元件、Items控制元件、TextBoxBase
  1. 如何理解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>
    

    結果如下:

    QQ截圖20240816175729

  2. 繼承Control的大部分控制元件具備Padding屬性,TextBlock則單獨實現了內邊距

    Margin:外邊距。表示控制元件上下左右離其他控制元件的距離。

    Padding:內邊距。比如Button,其Content離Boder的距離就是內邊距。

相關文章