WPF中的視覺樹(VisualTree)和邏輯樹(LogicalTree)

zhaotianff發表於2024-08-20

視覺化樹和邏輯樹

我們先來理解一下什麼是視覺化樹和邏輯樹。

通俗點來說,視覺化樹就是在XAML中定義的或者程式碼新增的元素組成的樹。

就像下面這樣

1   <Grid>
2       <Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="點選我" Click="Button_Click"></Button>
3   </Grid>

邏輯樹就是控制元件模板裡元素組成的樹,例如Button的邏輯樹如下:

 1 <ControlTemplate TargetType="Button">
 2         <Border TextBlock.Foreground="{TemplateBinding Foreground}"
 3                 x:Name="Border"
 4                 CornerRadius="2"
 5                 BorderThickness="1">
 6           <ContentPresenter Margin="2"
 7                             HorizontalAlignment="Center"
 8                             VerticalAlignment="Center"
 9                             RecognizesAccessKey="True" />
10         </Border>
11 </ControlTemplate>

相關文章