xamlファイルが数百行に及ぶと何らかの機能別にファイルを分割し見通しを良くしたくなります。
その時の選択肢として考えられるのが、
- UserControl化する
- ResourceDictionaryに登録する
です。今回は構造的な変更を求めず、リソースディクショナリとしてMenuをxamlファイルに外出ししてみます。
menuDictionary.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Menu x:Key="menu"> <MenuItem Header="ファイル"> (略) |
本体のxamlでリソースディクショナリを読み込むようにし、Panelの子要素としてStaticResourceとしてキーを指定します。
MainWindow.xaml
<Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="menuDictionary.xaml"/> (略) <DockPanel> <!-- メニュー --> <Grid DockPanel.Dock="Top"> <StaticResource ResourceKey="menu"/> </Grid> <!-- 本体 --> (略) |
コメントを残す