«

»

5月
08

[wpf]MenuをResourceDictionaryに移動する

xamlファイルが数百行に及ぶと何らかの機能別にファイルを分割し見通しを良くしたくなります。

その時の選択肢として考えられるのが、

  1. UserControl化する
  2. 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>
	<!-- 本体 -->
()

コメントを残す

メールアドレスは公開されません

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>