XAML を使用してユーザー インターフェイスを作成しようとしています。ただし、ファイルはすぐに非常に大きくなり、操作が困難になります。複数のファイルに分割するための最良の方法は何ですか。
ComboBox などの要素のコンテンツを、別の xaml ファイル (ただし、同じ VS プロジェクト内) で定義されている要素に設定できるようにしたいと考えています。
ありがとう
UserControls を定義することで、大きなユーザー インターフェイスを分割できます。
ソリューション ツリーを右クリックし、[追加]、[新しい項目...]、[ユーザー コントロール] の順に選択します。これは通常の方法で設計できます。
その後、名前空間宣言を使用して、XAML でユーザー コントロールを参照できます。UserControl をウィンドウに含めたいとしましょう。次の例では、「Foo」という名前の UserControl を名前空間「YourCompany.Controls」に追加しました。
<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 ファイルを小さくするもう 1 つの方法は、メイン アプリで使用する独自のコントロールを定義することです。
スタイルとユーザー コントロールを使用します。インターフェイスを小さなパーツに分割し、別の xaml ファイルにコーディングします。例:
<Window>
<VeryBigControl>
<VeryBigControl.Style>
... <!--very long style-->
</VeryBigControl.Style>
.. <!--content of very big control-->
</VeryBigControl
</Window>
それ
を3 つの
xamlファイルに分割します
。