XAMLを使用してユーザーインターフェイスを作成しようとしています。ただし、ファイルはすぐに非常に大きくなり、操作が困難になります。複数のファイルに分割する最良の方法は何ですか。
ComboBoxなどの要素のコンテンツを、異なるxamlファイル(ただし同じVSプロジェクト内)で定義されている要素に設定できるようにしたいと考えています。
ありがとう
UserControlを定義することにより、大きなユーザーインターフェイスを分割できます。
ソリューションツリーを右クリックし、[追加]、[新しいアイテム...]、[ユーザーコントロール]の順に選択します。これは通常の方法で設計できます。
その後、名前空間宣言を使用してXAMLでユーザーコントロールを参照できます。 UserControlをウィンドウに含めたいとしましょう。次の例では、名前空間 "YourCompany.Controls"に "Foo"という名前のUserControlを追加しました。
<Window x:Class="YourCompany.MainWindow"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:YourCompany.Controls">
<Controls:Foo ... />
特定の例では、ユーザーコントロール内のデータを表示するDataTemplateを定義することにより、コンボボックスでユーザーコントロールを利用します。
ResourceDictionary を使用して、XAMLファイルを分割できます。 ResourceDictionaryを使用して、他のファイルをマージできます。
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
ResourceDictionaryでは、メインのXAMLファイルが小さくなるように、要素で使用できるスタイルを宣言することもできます。
小さいXAMLファイルを取得する別の可能性は、メインアプリで使用する独自のコントロールを定義することです。