[解決済み] WPFでイベント処理のためにリソース辞書の後ろにコードを設定することは可能ですか?
2022-04-27 16:36:47
質問
WPFでリソース辞書の後ろにコードを設定することは可能ですか?例えば、ボタン用のユーザーコントロールで、あなたはそれをXAMLで宣言します。ボタンクリックのイベント処理コードは、コントロールの背後にあるコードファイル内で行われます。もし、私がボタン付きのデータテンプレートを作成する場合、リソースディクショナリー内のボタンクリックのイベントハンドラーコードをどのように書くことができるでしょうか。
どうすればいいですか?
ご質問の内容は、ResourceDictionaryのコード・ビハインド・ファイルが欲しいということだと思います。これは完全に可能です。実際には、ウィンドウと同じ方法で実行します。
MyResourceDictionaryというResourceDictionaryがあるとします。MyResourceDictionary.xaml ファイルで、ルート要素に x:Class 属性を以下のように記述します。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyCompany.MyProject.MyResourceDictionary"
x:ClassModifier="public">
次に、MyResourceDictionary.xaml.csというコードビハインドファイルを作成し、以下の宣言をします。
namespace MyCompany.MyProject
{
partial class MyResourceDictionary : ResourceDictionary
{
public MyResourceDictionary()
{
InitializeComponent();
}
... // event handlers ahead..
}
}
そして、これで完了です。後ろのコードには、メソッド、プロパティ、イベントハンドラなど、好きなものを入れることができます。
== Windows 10アプリのアップデートについて
と遊んでいると、念のため UWP もうひとつ、注意しなければならないことがあります。
<Application x:Class="SampleProject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:rd="using:MyCompany.MyProject">
<!-- no need in x:ClassModifier="public" in the header above -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- This will NOT work -->
<!-- <ResourceDictionary Source="/MyResourceDictionary.xaml" />-->
<!-- Create instance of your custom dictionary instead of the above source reference -->
<rd:MyResourceDictionary />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
関連
-
例外の解決方法 GDI+でジェネリックエラーが発生しました。
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] ラジオボタンをenumにバインドするには?
-
[解決済み] StackPanelの子パネルが下方向に最大限のスペースを埋めるようにするには?
-
[解決済み] 静的プロパティへのバインディング
-
[解決済み] WPFバインディングを使用して2つのコマンドパラメータを渡す
-
[解決済み] WPF: グリッドに列/行のマージン/パディングを設定できますか?
-
[解決済み] Generic.xamlの特徴とは?
-
[解決済み] WPFのキーボードショートカット
-
[解決済み] 読み取り専用のGUIプロパティをViewModelにプッシュバックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ラジオボタンをenumにバインドするには?
-
[解決済み】無料のWPFテーマがあれば教えてください。[クローズド]
-
[解決済み] ユーザーコントロールライブラリーとカスタムコントロールライブラリーの違いは何ですか?
-
[解決済み] 静的プロパティへのバインディング
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] WPF:幅(と高さ)をパーセント値で設定する
-
[解決済み] 16進数の色値からSolidColorBrushを作成する
-
[解決済み] ViewModelLocatorとは何ですか?また、DataTemplatesと比較した場合の長所と短所は何ですか?