分類:[C#]
いつもお世話になっております。
環境は以下の通りです。
・開発環境:C# WPF VisualStudio2017 Windows10
掲題の件について質問をさせて頂きます。
質問:
GridのプロパティであるColumnDefinitionに、ColumnDefinitionクラスを設定すればするほど、
表示領域が減少するとしたら、どのような原因が考えられるでしょうか。
また、どのような対策を行えばよろしいでしょうか。
背景:
・複数の画面で共通するレイアウトをApp.xamlでStyleとして設定している。(そのStyleを以下Aとします)
・AでColumnDefinitionを使用している。
・Aを適用している画面で、表示領域が減少している。
具体的には以下の通り。
Aで以下のコードを実装する。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
Aを適用している画面では、画面の幅一杯にコンテンツが表示されている。
上記の<ColumnDefinition Width="1*" />をもう一行増やす。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
Aを適用している画面では、コンテンツを表示する画面の幅が半分になっている。
念のため、Style及びXamlの全コードを提示します。
Style
<Style x:Key="Test" TargetType="Window">
<Setter Property="Height" Value="300"></Setter>
<Setter Property="Width" Value="400"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Window">
<Grid Margin="5" Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.Background>
<SolidColorBrush Color="Blue">
</SolidColorBrush>
</Grid.Background>
<TextBox Text="Tessssss" Width="50"></TextBox>
</Grid>
<Grid Grid.Row="1">
<Grid.Background>
<SolidColorBrush Color="Yellow">
</SolidColorBrush>
</Grid.Background>
<TextBox Text="Tessssss2" Width="70"></TextBox>
</Grid>
<Grid Grid.Row="2">
<Grid.Background>
<SolidColorBrush Color="Black">
</SolidColorBrush>
</Grid.Background>
<ContentPresenter />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Xaml
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Window1"
Style="{Binding Source={StaticResource Test}}"
>
<Grid>
</Grid>
</Window>
以上、何かご存じであれば、ご指導頂きたく存じます、
|