C#で書いたクラスをWPFのXAML上でインスタンス化したい場合、まずXAMLのカスタムプレフィクスを定義してアセンブリの型を XAML で参照できるようにする必要がある
資料:XAML のカスタム プレフィックスとカスタム型
<例>
<Page x:Class="WpfApplication1.Page1"
     xmlns:src="clr-namespace:WpfApplication1"
これで参照が通っているのでC#内のコードで書かれたPersonクラスをインスタンス化したい場合
   <Page.Resources>
       <src:Person x:Key="test" Name="このようにプロパティもセットできる"/>
   </Page.Resources>
のように一意のキーを指定した上でインスタンス化する。この際プロパティを使って値をセットできる。この場合、以後XAML内で「test」の名前でこのオブジェクトにアクセスできる

この2行は何をしているか?について
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
C#におけるusingのクラスライブラリの読み込みみたいなものらしい
詳しくはXAML ルート要素と XAML 名前空間を参照
using System.Linq;
using System.Text;
こんな感じでXAMLで利用するセットを名前空間で設定している(・・・クラスライブラリの外部サーバーへの配置。クラウド化みたいな考えで良いのかな?)

XAML内のクラスのインスタンスの作成は FrameworkElement.Resources プロパティ によって行う
<object>
 <object.Resources>
   oneOrMoreResourceElements
 </object.Resources>
</object>
object オブジェクト名
oneOrMoreResourceElements ここにリソース作成の為のコードを書く
C#からは
public ResourceDictionary Resources { get; set; }
で拾える。以下C#のCLRの例。(どのエレメントに属したリソースかが重要でコードの位置によって「this」等が必要な事に注意する)
LinearGradientBrush a = (LinearGradientBrush)this.Resources["backgroundBrush1"];
この場合、backgroundBrush1 がXAML側で設定したキー

最終更新:2012年09月19日 00:11