情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

FrameworkElement.Width プロパティ

要素の幅を取得または設定します。

名前空間:  System.Windows
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)
XAML の XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
[TypeConverterAttribute(typeof(LengthConverter))]
public double Width { get; set; }
<object Width="double"/>
- or –
<object Width ="qualifiedDouble"/>
- or -
<object Width ="Auto"/>

XAML の値

double

Double

0.0 以上の Double 型の値の文字列表現。 上限については、「解説」を参照してください。 この値は、デバイスに依存しない単位 (1/96 インチ) 単位として解釈されます。 文字列には、小数点を明示的に含める必要はありません。 たとえば、1 は値として受け入れられます。

qualifiedDouble

上記の double 型の値に、単位宣言文字列 pxincmpt のいずれかを後に続けたもの。

px (既定値) は デバイスに依存しない単位 (1 単位は 1/96 インチ) です。

in はインチです (1in==96px)。

cm はセンチメートルです (1 cm==(96/2.54) px)。

pt はポイントです (1pt==(96/72) px)。

Auto

自動サイズ変更を有効にします。 「解説」を参照してください。

プロパティ値

型 : System.Double
要素の幅 (デバイスに依存しない単位 (1 単位は 1/96 インチ))。 既定値は Double.NaN です。 この値は、0.0 以上である必要があります。 上限については、「解説」を参照してください。

識別子フィールド

WidthProperty

true に設定されたメタデータのプロパティ

AffectsMeasure

このプロパティは、幅情報を指定する FrameworkElement の 3 つのプロパティのうちの 1 つです。他の 2 つは、MinWidthMaxWidth です。これらの値の間に競合が発生した場合は、まず MinWidth、次に MaxWidth を適用し、この 2 つが範囲内にあるときは、最後に Width を適用して実際の幅を決定します。

このプロパティの戻り値は、常に設定値と同じです。 これに対し、ActualWidth の値は異なる場合があります。 まず、何らかの理由で推奨サイズがレイアウトによって拒否される場合があります。 また、レイアウト システムそのものが、プロパティ システムによる Width の設定に対して非同期で動作するため、特定のサイズ設定プロパティの変更がまだ処理されていない場合もあります。

Double 型の値を受け入れることができるだけでなく、このプロパティは Double.NaN にすることもできます。 自動サイズ変更動作を指定する場合にこの値を使用します。 XAML では、値を文字列 "Auto" (大文字/小文字の区別なし) に設定して自動サイズ変更動作を有効にします。 自動サイズ変更動作では、要素の幅は利用可能な最大の幅になります。 ただし、特定のコントロールの既定のスタイルで既定値が指定される場合も多く、その場合は自動サイズ変更動作は (改めて有効にしない限り) 無効になります。

検証チェックに加えて、レイアウト システムによって適用される Width には非決定性の上限値があります (これは、Single.MaxValue より大きいが Double.MaxValue より小さい、非常に大きな値です)。 この上限値を超えると、要素は描画されず、例外もスローされません。 表示可能な最大サイズを大きく超える値を Width に設定しないでください。この非決定性の上限値を超える可能性があります。

この例では、Windows Presentation Foundation (WPF) の幅に関連する 4 つのプロパティについて、レンダリング動作の違いを視覚的に示します。

FrameworkElement クラスは、要素の幅の特性を記述する 4 つのプロパティを公開します。 これらの 4 つのプロパティは競合する可能性がありますが、その場合は、MinWidth 値、MaxWidth 値、Width 値の順序で優先して使用されます。 4 つ目のプロパティの ActualWidth は読み取り専用で、レイアウト プロセスとのやり取りによって決定される実際の幅を報告します。

次の Extensible Application Markup Language (XAML) の例では、Rectangle 要素 (rect1) を Canvas の子として描画します。 Rectangle の幅のプロパティは、MinWidthMaxWidth、および Width の各プロパティ値を表す一連の ListBox 要素を使用して変更できます。 この方法では、各プロパティの優先順位が表示されます。


<Canvas Height="200" MinWidth="200" Background="#b0c4de" VerticalAlignment="Top"  HorizontalAlignment="Center" Name="myCanvas">
    <Rectangle HorizontalAlignment="Center" Canvas.Top="50" Canvas.Left="50"  Name="rect1" Fill="#4682b4" Width="100" Height="100"/>
</Canvas>


...


    <TextBlock Grid.Row="1" Grid.Column="0" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle Width:</TextBlock>
    <ListBox Grid.Column="1" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeWidth">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem>
      <ListBoxItem>225</ListBoxItem>
      <ListBoxItem>250</ListBoxItem>
    </ListBox>

	<TextBlock Grid.Row="1" Grid.Column="2" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MinWidth:</TextBlock>
    <ListBox Grid.Column="3" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeMinWidth">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem>
      <ListBoxItem>225</ListBoxItem>
      <ListBoxItem>250</ListBoxItem>
  </ListBox>      

    <TextBlock Grid.Row="1" Grid.Column="4" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MaxWidth:</TextBlock>
    <ListBox Grid.Column="5" Grid.Row="1" Margin="10,0,0,0" Width="50" Height="50" SelectionChanged="changeMaxWidth">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem>
      <ListBoxItem>225</ListBoxItem>
      <ListBoxItem>250</ListBoxItem>  
    </ListBox>


次の分離コードの例では、SelectionChanged イベントによって発生したイベントを処理します。 各カスタム メソッドは ListBox から入力を受け取り、値を Double として解析し、指定された幅に関連するプロパティに値を適用します。 幅の値は文字列にも変換され、各種の TextBlock 要素に書き込まれます (それらの要素の定義は、上の XAML の例には示されていません)。


private void changeWidth(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.Width = sz1;
    rect1.UpdateLayout();
    txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
    txt2.Text = "Width is set to " + rect1.Width;
    txt3.Text = "MinWidth is set to " + rect1.MinWidth;
    txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}
private void changeMinWidth(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MinWidth = sz1;
    rect1.UpdateLayout();
    txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
    txt2.Text = "Width is set to " + rect1.Width;
    txt3.Text = "MinWidth is set to " + rect1.MinWidth;
    txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}
private void changeMaxWidth(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MaxWidth = sz1;
    rect1.UpdateLayout();
    txt1.Text = "ActualWidth is set to " + rect1.ActualWidth;
    txt2.Text = "Width is set to " + rect1.Width;
    txt3.Text = "MinWidth is set to " + rect1.MinWidth;
    txt4.Text = "MaxWidth is set to " + rect1.MaxWidth;
}


サンプル全体については、Width のプロパティの比較のサンプルを参照してください。

.NET Framework

サポート対象 : 4.5、4、3.5、3.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

この .NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、次を参照してください。.NET Framework システム要件.

コミュニティの追加

表示:
© 2014 Microsoft