SourceChordスマートフォン用の表示で見るSourceChordC#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。2017の22日目の記事です。以前↓に書いた、各種グリッドレイアウトを補助するGridExtraというライブラリを更新しました。SourceChordソースコードのリポジトリはこちらNugetから以下のコマンドでインストールできます。GridExtra主に以下のような変更が入っています。GridExクラスの更新GridEx.AutoFillChildren添付プロパティGridパネル内の子要素を、UniformGridやWrapPanelみたいに各要素を自動で順々に並べる機能WrapPanelExクラスの追加WrapPanelEx.AdaptiveLayout添付プロパティWrapPanelの子要素がOrientation方向の幅いっぱいに広がるようにレイアウトを自動調整する機能ということで変更点などを、ざっとご紹介したいと思います。GridEx.AutoFillChildrenという添付プロパティをTrueにすると、子要素をGrid内の各領域へと自動で順番に流し込んでいきます。Gridなんだけど、WrapPanelみたいに要素を順番に流し込んでいけるイメージ。以下のように、子要素でGrid.Row/Grid.Columnを個別に設定せず、自動で配置することができます。</Grid>Orientationの指定GridEx.AutoFillOrientation添付プロパティを指定することで、自動レイアウトする方向を指定できます。こんな風に、縦方向の並びで順番に並べることもできます。</Grid>自動レイアウトに、固定要素を混ぜるAutoFillChildrenを用いたレイアウトをする際、GridEx.AreaやGridEx.AreaNameなど、GridExでの位置指定を行う添付プロパティが設定された子要素があると、自動レイアウトの対象から除外し、指定された位置に固定配置します。</Grid>まぁ、これはこれでどこかで用途あるんじゃないかな、と。AutoFill絡みのプロパティは、今後もう少し追加していきたいなと思います。Definitionで、行・列サイズのmin/max指定に対応GridExでは、GridEx.RowDefinition、GridEx.ColumnDefinitionという添付プロパティで、Gridの行・列数を定義する機能を作ってました。この定義では、行・列の各要素のサイズ指定はできたのですが、MinWidth/MinHeightなどの値を設定できませんでした。以下のような形式で、複数の行や列のサイズをMin/Max条件含めてまとめて定義できるようにしました。2*(-300)"こんな風にグリッド定義をすることができます。</Grid>これは、以下のようなコードと同じレイアウトとなります。定義を一通りできるようになったかと思います。WrapPanelExクラスの追加WrapPanelのレイアウト調整を行うヘルパークラス、WrapPanelExを追加しました。WrapPanelでWrapPanelEx.AdaptiveLayout="True"という添付プロパティを設定すると、通常のWrapPanelのように各要素を等間隔で配置するのではなく、指定幅以上でパネルを埋め尽くすようにレイアウトします。ToolkitのAdaptiveGridViewのようなレイアウト方法です。言葉で表現しにくいので、動きは↓のgif見てください。</Grid>今回の更新内容は以上ですが、今後も面白そうなレイアウト手法があれば、色々と取り入れながら更新していきたいと思ってます。ToolkitのV1.4.1がリリースされてました。アプリ開発Windows開発者はてなブログをはじめよう!minami_SCさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。