Windows アプリ
目次を折りたたむ
目次を展開する
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

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 型の値の文字列表現。 上限については、「解説」を参照してください。 この値は、device-independent unit (1/96th inch) 単位として解釈されます。 文字列には、小数点を明示的に含める必要はありません。 たとえば、1 は値として受け入れられます。

qualifiedDouble

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

px (既定値) は device-independent units (1/96th inch per unit) です。

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

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

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

Auto

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

プロパティ値

型: System.Double
要素の幅 (device-independent units (1/96th inch per unit))。 既定値は 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 に設定しないでください。この非決定性の上限値を超える可能性があります。

This example visually shows the differences in rendering behavior among the four width-related properties in Windows Presentation Foundation (WPF).

The FrameworkElement class exposes four properties that describe the width characteristics of an element. These four properties can conflict, and when they do, the value that takes precedence is determined as follows: the MinWidth value takes precedence over the MaxWidth value, which in turn takes precedence over the Width value. A fourth property, ActualWidth, is read-only, and reports the actual width as determined by interactions with the layout process.

The following Extensible Application Markup Language (XAML) examples draw a Rectangle element (rect1) as a child of Canvas. You can change the width properties of a Rectangle by using a series of ListBox elements that represent the property values of MinWidth, MaxWidth, and Width. In this manner, the precedence of each property is visually displayed.


<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>


The following code-behind examples handle the events that the SelectionChanged event raises. Each custom method takes the input from the ListBox, parses the value as a Double, and applies the value to the specified width-related property. The width values are also converted to a string and written to various TextBlock elements (definition of those elements is not shown in the selected 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;
}


For the complete sample, see Width Properties Comparison Sample.

.NET Framework

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

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

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

コミュニティの追加

表示:
© 2016 Microsoft