Przeczytajmy te kody, zdefiniowałem dwa podobne UserControls w projekcie Windows Phone 8 i naprawdę chcę, który z nich jest lepszy. Sprawdziłem profilowanie, wygląda na to, że są prawie takie same.Siatka i StackPanel, który ma lepszą wydajność?
UserControl 1, używając właściwości siatki do zaprojektowania mojego układu.
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Height="108">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Rectangle Grid.RowSpan="2" Grid.Row="0" Height="108" Width="54" Fill="Blue"></Rectangle>
<TextBlock Grid.Row="0" Grid.Column="1" Text="Caption" Style="{StaticResource PhoneTextExtraLargeStyle}"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="URLURLURLURLURLURL" Style="{StaticResource PhoneTextSmallStyle}"></TextBlock>
</Grid>
UserControl 2, używając StackPanel do zaprojektowania mojego układu.
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Height="108">
<StackPanel Orientation="Horizontal">
<Rectangle Height="108" Width="54" Fill="Red"></Rectangle>
<StackPanel Orientation="Vertical">
<TextBlock Text="Caption" Style="{StaticResource PhoneTextExtraLargeStyle}"></TextBlock>
<TextBlock Text="URLURLURLURLURLURL" Style="{StaticResource PhoneTextSmallStyle}"></TextBlock>
</StackPanel>
</StackPanel>
</Grid>
Wygląda na to, że podstawowy układ jest taki sam. Ale kiedy używam XAML Spy do analizy drzewa wizualizacji, UserControl 1 ma mniej węzłów, ale kosztuje trochę więcej pamięci. Czemu?
Dzięki za odpowiedź! – Eddie