LGBTQのシンボル

2017年1月14日土曜日

UWPでIsItemsHost="True"を使う

WPFで書かれている完全カスタムカレンダーを作るやつをUWPにしたかった。

<ListBox.Template>  
        <ControlTemplate TargetType="{x:Type ListBox}">  
            <StackPanel>  
                <UniformGrid Columns="7" IsItemsHost="True">  
                </UniformGrid>  
            </StackPanel>  
        </ControlTemplate>  
</ListBox.Template>  
これの IsItemsHostプロパティがsetできない。

解決方法はこれ(アイテムコントロールのテンプレート)。
  1. ItemsPresenterを使う
  2. ItemsPanel プロパティ(ItemsPanelTemplate 型)を設定する
<ListBox.ItemsPanel>
  <ItemsPanelTemplate>
    <StackPanel Orientation="Horizontal"/>
  </ItemsPanelTemplate>
</ListBox.ItemsPanel>

これでListBoxの項目の並び方とかをカスタムできるようになる。
続きを読む »