汎用アプリケーションテンプレート
DockableAppTemplate は AvalonDock を使用したアプリケーションテンプレートです。スキンの変更・多言語化に関する機能を実装しています。
動作サンプル
ウィンドウのドッキング
AvalonDock は WPF アプリのドッキングウィンドウをサポートするライブラリです。以下のようなよくあるドッキングウィンドウのアプリケーションが作成できます。
スキンの変更
また、スキンの機能もサポートしており、見た目のカスタマイズが簡単にできます。
多言語化対応
このアプリケーションテンプレートには、多言語化のための機能も実装されています。XAML では Loc
というエクステンションが実装されており、以下のような記述で AppName
という部分が、言語ごとに定義した文字列に置き換えられます。
<Window x:Class="DockableAppTemplate.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DockableAppTemplate"
xmlns:m="clr-namespace:DockableAppTemplate.Localize.Markup"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
mc:Ignorable="d"
Title="{m:Loc AppName}" Height="600" Width="800">
...
言語ごとの定義は下記のような埋め込みのリソースデータ(XML)です。こちらを言語ごとに作成しておくと、アプリケーション起動時に自動的に読み替えられます。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<StringLocalizationTable>
<StringItem id="AppName" context="" translation="アプリケーションテンプレート" />
...
</StringLocalizationTable>
この言語ごとの文字列切り替えをソース側で実装したい場合、string
の拡張メソッドである Localize()
を呼び出します。
public partial class MainWindow : Window
{
public MainWindow()
{
Title = "AppName".Localize();
}
...
こちらの多言語化に関する実装は Sony ATF を参考にしました。
ソースコード
ソースコードはこちらです。ライセンスは Unlicense で、どなたでも自由に改変・再配布可能です。
環境構築
プロジェクトをダウンロードし、NuGet から Xceed.Products.Wpf.ToolKit.AvalonDock をインストールします。下のキャプチャで示した上の二つをインストールしてください。
インストールが完了すれば、ビルドが通るようになり、アプリケーションの開発が始められます!
コメント