FrameworkElement.MaxWidth プロパティ

定義

FrameworkElement の最大幅制約を取得または設定します。

public:
 property double MaxWidth { double get(); void set(double value); };
double MaxWidth();

void MaxWidth(double value);
public double MaxWidth { get; set; }
var double = frameworkElement.maxWidth;
frameworkElement.maxWidth = double;
Public Property MaxWidth As Double
<frameworkElement MaxWidth="double"/>
 

プロパティ値

Double

double

オブジェクトの最大幅 (ピクセル単位)。 既定値は PositiveInfinity です。 この値には、0 以上の任意の値を指定できます。 PositiveInfinity も有効です。

この XAML の例では、 ViewBox に MaxWidth を指定する手法を示します。 ViewBox は、1 つの子にレイアウト情報を適用し、次の親要素 (この場合は StackPanel) のレイアウト領域を分割できるデコレーターです。

<Grid Height="600" Width="600">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    
    <StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,5" Orientation="Vertical">
        <TextBlock Text="Stretch" FontWeight="Bold" FontSize="12" />
        <Button Name="btn1" Click="stretchNone" Content="None" />
        <Button Name="btn2" Click="stretchFill" Content="Fill" />
        <Button Name="btn3" Click="stretchUni" Content="Uniform" />
        <Button Name="btn4" Click="stretchUniFill" Content="UniformToFill" />
    </StackPanel>

    <StackPanel Grid.Row="0" Grid.Column="1" Margin="5,5,5,5" Orientation="Vertical">
        <TextBlock Text="StretchDirection" FontWeight="Bold" FontSize="12" />
        <Button Name="btn5" Click="sdUpOnly" Content="UpOnly" />
        <Button Name="btn6" Click="sdDownOnly" Content="DownOnly" />
        <Button Name="btn7" Click="sdBoth" Content="Both" />
    </StackPanel>

    <StackPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" 
                Orientation="Vertical">
        <TextBlock Name="txt1" FontSize="12" FontWeight="Bold" />
        <TextBlock Name="txt2" FontSize="12" FontWeight="Bold" />
    </StackPanel>   

    <StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" 
                Orientation="Horizontal">
        <Viewbox MaxWidth="100" MaxHeight="100" Name="vb1">
            <Image Source="flower.jpg"/>
        </Viewbox>
        <Viewbox MaxWidth="200" MaxHeight="200" Name="vb2">
            <Image Source="flower.jpg"/>
        </Viewbox>
        
        <Viewbox MaxWidth="300" MaxHeight="300" Name="vb3">
            <Image Source="flower.jpg"/>
        </Viewbox>
    </StackPanel>

</Grid>

注釈

MaxWidth は、幅情報を指定する FrameworkElement の 3 つの書き込み可能なプロパティの 1 つです。 他の 2 つは MinWidthWidth です。 これらの値間に競合がある場合、実際の幅決定の適用順序は、最初の MinWidth を受け入れ、次に MaxWidth を受け入れ、最後に境界内にある場合は Width を受け入れなければならないということです。 これらのプロパティはすべて、オブジェクト ツリー内の要素の親のレイアウト動作に関する推奨事項です。 レイアウトの実行後のオブジェクトの幅は 、ActualWidth プロパティ値として使用できます。

要素の最後の ActualWidth が MaxWidth を超える可能性があります。 たとえば、 UseLayoutRoundingtrue に設定されていて、解像度スケールが 100% を超えるディスプレイでアプリが実行されている場合、 ActualWidth が切り上げられ、スケーリング時に UI がぼやけないようにすることができます。

適用対象

こちらもご覧ください