いくつかのトグルボタンのスタイルを変更しようとしています。トグルボタンの視覚的な動作を提供する「コントロールテンプレート」があるため、背景を単に新しい色に設定することはできないようです。したがって、単純な背景色を超えて、さまざまな視覚的動作を提供する ToggleButton の代わりの "ControlTemplate" を XAML で指定する必要があります。
Q1 . これは正しいです?
here から取得した ToggleButton の「デフォルト」コントロールテンプレートから始めて、それを変更することにしました。実際、これは Silverlight のデフォルトの ControlTemplate だと思います。私は Silverlight を使用しておらず、WPF を使用しています。しかし... WPFの対応するドキュメントページには、デフォルトのコントロールテンプレートの仕様が含まれていません。それは私が望むものではない "a" ControlTemplate を提供します。
Q2 . Silverlight のものを使用していることが重要かどうかはわかりません。そうですか?
Silverlight の例では、VisualStateManager に適用された vsm の XML 名前空間プレフィックスがあります。どうやらxml名前空間は
xmlns:vsm = "clr-namespace:System.Windows;assembly=System.Windows"
...しかし、別の場所で、この XML 名前空間は「不要になった」と読みました。
これはすべて非常に混乱しています。
Googlespace には、私が以前に触れた「The WPF toolkit」と呼ばれるものへの参照があります。WPF V4 のリリース前に、オートコンプリート テキストボックスに使用していました。私は、WPF ツールキットの一部が .NET v4.0 の WPF に組み込まれたと推測しています。そのため、WPF ツールキットを指定する必要がなくなりました。
Q3 . 誰かがその理解を確認できれば幸いです。
さて、ToggleButton の「デフォルト」の ControlTemplate から始めて、最初のステップは、変更を加える前にコンパイルすることでした。コンパイルされず、失敗します
c:\dev...\ToggleButtonStyle1.xaml(23,14): エラー MC3074: タグ 'VisualStateManager.VisualStateGroups' が XML 名前空間に存在しません ' http://schemas.microsoft.com/winfx/2006/xaml/プレゼンテーション」。行 23 位置 14。
十分にクリア。次に、XAML で VisualStateManager を指定するためのドキュメントを調べました。紛らわしいことに、2 つの xml 名前空間が指定されています。そのうちの 1 つは、私が実際に使用したものです。
Q4うーん、どれを使えばいいの?そのうちの 1 つを使用しましたが、機能しませんでした。ドキュメントは、2 つのXML 名前空間を指定することの意味について完全に不明確です。(彼らの頭をオフに!)
プロジェクト ファイルに PresentationFramework.dll への参照があります。
<ItemGroup>
....
<Reference Include="PresentationFramework" />
</ItemGroup>
ここでは Visual Studio を使用していません。テキストエディタを使用しています。どのボタンを押すかではなく、それがどのように機能するかを理解したい。
皆様のご協力に感謝いたします。
余談ですが、これはすべて非常に複雑に思えます。私がしたいのは、オンのときにトグルボタンの色を変更することだけです。それほど複雑ではないはずです。