• Panel performance


    程序:

    <StackPanel HorizontalAlignment="Left">
        <
    StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
            <
    TextBlock Text="Field 1: " VerticalAlignment="Center"/>
            <
    TextBox Width="100"/>
        </
    StackPanel>
        <
    StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
            <
    TextBlock Text="Field 2: " VerticalAlignment="Center"/>
            <
    TextBox Width="100"/>
        </
    StackPanel>
        <
    StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
            <
    TextBlock Text="Longer Field 3: " VerticalAlignment="Center"/>
            <
    TextBox Width="100"/>
        </
    StackPanel>
    </
    StackPanel>

    有四个StackPanel意味着要执行四次measurement和arrangement,第一个父StackPanel让自己的三个孩子StackPanel执行measurement和arragement,这样性能损失严重,修改为:

    Grid>
        <
    Grid.ColumnDefinitions>
            <
    ColumnDefinition Width="Auto"/>
            <
    ColumnDefinition Width="100"/>
        </
    Grid.ColumnDefinitions>
        <
    Grid.RowDefinitions>
            <
    RowDefinition Height="Auto"/>
            <
    RowDefinition Height="Auto"/>
            <
    RowDefinition Height="Auto"/>
        </
    Grid.RowDefinitions>

        <
    TextBlock Text="Field 1: "
                  
    Grid.Column="0"
                  
    Grid.Row="0"
                  
    HorizontalAlignment="Right"
                  
    VerticalAlignment="Center"/>
        <
    TextBox Grid.Column="1"
                
    Grid.Row="0"/>

        <
    TextBlock Text="Field 2: "
                  
    Grid.Column="0"
                  
    Grid.Row="1"
                  
    HorizontalAlignment="Right"
                  
    VerticalAlignment="Center"/>
        <
    TextBox Grid.Column="1"
                
    Grid.Row="1"/>

        <
    TextBlock Text="Longer Field 3: "
                  
    Grid.Column="0"
                  
    Grid.Row="2"
                  
    HorizontalAlignment="Right"
                  
    VerticalAlignment="Center"/>
        <
    TextBox Grid.Column="1"
                
    Grid.Row="2"/>
    </
    Grid>

     这样只有一个panel,只需要执行一次measurement 和 arrangement计算。

  • 相关阅读:
    [html]Sublime Text添加插件
    [C#.Net]判断文件是否被占用的两种方法
    C#中隐式运行CMD命令行窗口的方法
    [C#.Net]启动外部程序的几种常用方法汇总
    C# 管理员身份运行程序
    [C#.net]PostMessage与SendMessage的区别
    [C#.net] SendMessage
    由浅入深了解Thrift之客户端连接池化续
    由浅入深了解Thrift之客户端连接池化
    由浅入深了解Thrift之服务模型和序列化机制
  • 原文地址:https://www.cnblogs.com/liangouyang/p/1619715.html
Copyright © 2020-2023  润新知