LoginSignup
1
1

More than 5 years have passed since last update.

【WPF】簡単に特定のコントロールのプロパティ(Width,Heightなど)に、値を一括設定する。

Last updated at Posted at 2019-04-05

XAMLの小ネタテクニック。
例えば、Textboxが下記のように列挙していて同じような幅(Width)を設定した場合に有効です。

<StackPanel>
    <StackPanel HorizontalAlignment="Left">
        <TextBlock Width="100" HorizontalAlignment="Left"></TextBlock>
        <TextBox Width="200"></TextBox>
    </StackPanel>
    <StackPanel HorizontalAlignment="Left">
        <TextBlock Width="100" HorizontalAlignment="Left"></TextBlock>
        <TextBox Width="200"></TextBox>
    </StackPanel>
</StackPanel>

ResourcesプロパティにTextBlockとTextBoxのWidthを設定するようにします。
こうすることで、StackPanel配下のTextBlockおよびTextBoxのWidthプロパティを一括で設定することができます。

<StackPanel>
    <StackPanel.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Width" Value="100"></Setter>
        </Style>
        <Style TargetType="TextBox">
            <Setter Property="Width" Value="200"></Setter>
        </Style>
    </StackPanel.Resources>
    <StackPanel HorizontalAlignment="Left">
        <TextBlock HorizontalAlignment="Left"></TextBlock>
        <TextBox ></TextBox>
    </StackPanel>
    <StackPanel HorizontalAlignment="Left">
        <TextBlock HorizontalAlignment="Left"></TextBlock>
        <TextBox ></TextBox>
    </StackPanel>
</StackPanel>

適応範囲をWindow全体にしたい場合は、Window.Resourcesに定義を書けばOK。

<Window ... 省略...>
    <Window.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Width" Value="100"></Setter>
        </Style>
        <Style TargetType="TextBox">
            <Setter Property="Width" Value="200"></Setter>
        </Style>
    </Window.Resources>

同じページ内のコントロールの幅などはそろえることが多いですし、特定範囲にさくっと適用したい場合に有効です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1