| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[WPF レイアウト]]==[[WPF]] | [[.Net]] | [[Silverlight]] | [[Universal Windows Platform]] |
{{amazon|4798114200}}
===サンプル===
*[[WPF レイアウト サンプル]]
==レイアウトの原則==
*レイアウトを他のレイアウトにネストできる
#目的のサイズ
#実際のサイズ
desiredSize <&lt;= actualSize <&lt;= availableSize
====クラス階層====
*レイアウトは UIElement型によって、WPFのクラス階層に導入されるUIElement型によって、[[WPF]]のクラス階層に導入される public class UIElement U[[IE]]lement : Visual {
...
public bool Visibility Visibility { get; set; }
public void Arrange(Rect finalRect[[R]]ect final[[R]]ect); protecterd virtual [[vi]]rtual void ArrangeCore(Rect finalRect);
public void Measure(Size availableSize);
protected virtual [[vi]]rtual Size MeasureCore(Size availableSize);
}
===一貫したレイアウト===
*これらのパターンを一貫して実装するレイアウトを簡単に作成するために、レイアウトコントラクトの上位に位置するレイヤーを備える
*共通レイアウトを制御するプロパティは、System.[[Windows]].FrameworkElement で定義される
=====レイアウト制約=====
*レイアウト制約を制御するために、FrameworkElementは6つのプロパティを定義
===変換===
*コントロールの最終的な位置を決定するために2つのプロパティを使用して任意の変換を行うことができる
*System.[[Windows]].Media.Transform 型
{|class="wikitable"
!プロパティ
!備考
|-
|RenderTransform[[R]]enderTransform
|レンダリング直前に適用(レンダリングのみに影響を与える)
|-
=====ScaleTransform=====
*x/y ズーム
=====RotateTransform[[R]]otateTransform=====
*点を中心とした回転
=====TranslateTransform=====
=====例=====
<&lt;StackPanel Background="..." Orientagion="Horizontal">&gt; <&lt;Buttojn Width="75" Height="25">&gt; <&lt;Button.RenderTransform>[[R]]enderTransform&gt; <RotateTransform &lt;[[R]]otateTransform Angle="15" />&gt; <&lt;/Button> &gt; <&lt;/Button>&gt; <&lt;/StackPanel>&gt;
====zインデックス====
*重なりあったコントロールにPanel.ZIndexでレイア順序を指定
===UniformGrid===
*System.[[Windows]].Controls.Primitives に含まれる
*基本的なグリッドレイアウト
*各セルが同じサイズ
*複数のセルにまたがる項目をもつグリッド
*行および列の間隔設定が一様ではないグリッド
*最も簡単な使い方は、RowDefinitionsプロパティとColumnDefinitionsプロパティを設定し、添付プロパティのGrid最も簡単な使い方は、[[R]]owDefinitionsプロパティとColumnDefinitionsプロパティを設定し、添付プロパティのGrid.Row、Grid[[R]]ow、Grid.Column を使用してどの子がどのスロットに入るかを指定する====グリッドの概念グリッドの[[概念]]====
=====レイアウトと構造の分離=====
*通常はネストしたレイアウトパネルの数が少なくても複雑な結果を実現できる
**コンテンツに合わせた、または絶対値によるサイズ設定が完了した後に、グリッド内のスペースをパーセントに応じて占有する
*例
<&lt;Grid>&gt; <&lt;Grid.RowDefinitions>[[R]]owDefinitions&gt; <RowDefinition &lt;[[R]]owDefinition Height="2*" />&gt; <RowDefinition &lt;[[R]]owDefinition Height="1*" />&gt; <&lt;/Grid.RowDefinitions>[[R]]owDefinitions&gt; <&lt;Grid.ColoumDefinitions>&gt; <&lt;ColumnDefinition Width="2*" />&gt; <&lt;ColumnDefinition Width="1*" />&gt; <&lt;/Grid.ColoumDefinitions>&gt;
:
<&lt;/Grid>&gt;
=====共有サイズ情報=====
*有効にするには、上の列または行で、SharedSizeGroupプロパティを設定、次にコントロールでIsSharedSizeScopeプロパティを設定
*例
<&lt;Grid IsSharedSizeScope="true">&gt;
:
<&lt;Grid.ColumnDefinitions>&gt; <&lt;ColumnDefinition Width="Auto" SharedSizeGroup="a" />&gt; <&lt;ColumnDefinition Width="Auto" SharedSizeGroup="a" />&gt; <&lt;/Grid.ColumnDefinitions>&gt;
:
<&lt;/Grid>&gt;
=====グリッドのレイアウト=====
*グリッドのレイアウトは2つの段階で構成される
**行と列の定義
**スロットへの子の割り当て

案内メニュー