問題タブ [controltemplate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - ControlTemplate 内にボタンがあります。それへの参照を取得するにはどうすればよいですか?
使用している WPF エディターの ControlTemplate 内のボタンを有効または無効にしたいだけです。
wpf - WPF: リストボックス アイテムのラベルを更新する
ListBox
ユーザーが設定した整数プロパティに基づいてアイテムの数が追加される場所があります。アイテムはControlTemplate
、Label と のTextBox
内部で構成されるリソースから作成されDockPanel
ます。ラベルはデータにバインドされていませんが、ラベルが含まれているの (インデックス + 1) に基づいて、ある程度動的なコンテンツを持たせたいと考えていListboxItem
ます。私の質問/問題は、各のラベルの内容を更新できるようにしたいのですがListboxItem
、何らかの理由でラベルにアクセスできないことです。ラベルはテンプレートにあり、ListboxItem
. これらの混乱のいくつかを解決して、私を正しい軌道に戻すのを手伝ってくれる人はいますか?
xaml のコンテンツをバインドしたり、コード ビハインドLabel
のコンテンツを更新したりしたいと考えています。Label
どのルートが最適かはわかりません。
.net - 別のアセンブリの ResourceDictionary
複数の個別のアプリケーションで使用したいリソース ディクショナリ ファイル (MenuTemplate.xaml、ButtonTemplate.xaml など) があります。それらをアプリケーションのアセンブリに追加することもできますが、これらのリソースを 1 つのアセンブリにコンパイルして、アプリケーションがそれを参照できるようにしたほうがよいでしょうか?
リソース アセンブリがビルドされた後、アプリケーションの App.xaml でそれを参照するにはどうすればよいですか? 現在、ResourceDictionary.MergedDictionaries を使用して個々の辞書ファイルをマージしています。アセンブリにそれらがある場合、xaml でそれらを参照するにはどうすればよいですか?
wpf - ControlTemplate でラベルのフォント サイズを変更するにはどうすればよいですか
私の WPF ListBox には、ListBoxItem の ControlTemplate を使用したスタイルがあります。その ControlTemplate 内に、ラベルが定義されています。いくつかの詳細に基づいて、ラベルのフォント サイズを変更する必要があります。コード ビハインドから、フォントがどうあるべきかを判断し、それを設定する必要があります。
ControlTemplate を使用した私のスタイルは次のとおりです (無関係なコントロールをいくつか削除しました)。
これどうやってするの?
wpf - スクロールするコンテンツの上に ScrollViewer を配置する方法
ScrollViewer を、スクロールするコンテンツの上にオーバーラップ/配置するように配置したいと思います。コンテンツが下に表示されるように、ScrollViewer の Opacity を設定します。
私がデフォルトの ScrollViewer を理解している限り、コンテンツは ScrollViewer 内にネストされているため、そのままでは使用できないようです。
これを機能させる方法についてのアイデアはありますか?
編集: ScrollViewer はデコレータであり、コンテンツは ScrollViewer を認識していないことを理解しています。この分離は適切であり、コンテンツに ScrollViewer を認識させたくありません。私がやろうとしているのは、純粋に視覚的な (レイアウト) ことです。ScrollViewer をコンテンツの上に表示するだけです。ScrollViewer の動作は変更されません。
wpf - WPF: ControlTemplate のコントロールを無効にする
OnRender メソッドでカスタム グラフィックスを描画するデコレータを作成しました。グラフィックは、デコレータを含むオブジェクトの位置によって異なります。Style を介して Template プロパティを介してデコレータを設定します。問題は、デコレーターの OnRender メソッドが、テンプレートの適用時に一度だけ呼び出されることです。したがって、オブジェクトの位置を変更してそのオブジェクトで InvalidateVisual() を呼び出すと、デコレータは再レンダリングされません。
オブジェクトのテンプレートを null に設定してから、次のように同じテンプレートにリセットすることで、これを回避できました。
これはうまくいきますが、これは行うべき方法ではないと確信しています。私は何が欠けていますか?
wpf - ControlTemplate とユーザー コントロールを混在させることは良い考えですか?
と既存のコンテンツの両方をサポートするユーザー コントロール ( ) を持つことは可能ですか? s は Control ( ) から継承する場合にのみ使用する必要があることを理解しましたが、UserControl.xaml が空の場合にも使用できることがわかりました。public MyControl: UserControl
ControlTemplate
ControlTemplate
public MyControl: Control
UserControl
次のように、2 つの長方形が並んでいるコントロールがあるとします。
コントロールのユーザーが、それらの長方形を自分が使いたいものに置き換えられるようにしたいと思いFrameworkElement
ます。だから私はが必要ControlTemplate
です。
しかし、99% のケースで、コントロールのユーザーは既存の機能に満足しているので、次のように言ってもらいたいと思います:
コードビハインド:
XAML:
コントロール テンプレートをサポートしている場合、実際には UI 要素や xaml がないため、これは不可能のようです。コードビハインドファイルしかありません。私は、DependencyProperty
Left
あまり役に立たないコンテンツを保持する何らかのコンテナを持っていない限り、可能だと思います。コード ビハインド ファイルでグリッドを作成する必要があります。良い考えではないようです。
そして最後に、ユーザーがパーツのタイプを指定できるようにジェネリックを使用できるようにしたいと思います。
これは、型の安全性 (FrameworkElement
正しい型にキャストする必要がない) のため、コード ビハインドに役立ちます。残念ながら、ジェネリックは XAML 側で実際にサポートされているとは思いません。
この問題の解決策はありますか、それとも本当に「ControlTemplate
s をサポートするために Control から継承しますが、コントロールの使いやすさを失います。使いやすさをサポートするために UserControl から継承しますが、ControlTemplate
サポートを失います」?
.net - グリップのみでサイズ変更できる境界線のない WPF ウィンドウを作成する方法は?
ResizeMode="CanResizeWithGrip"
WPF で設定するWindow
と、以下のようにサイズ変更グリップが右下隅に表示されます。
WindowStyle="None"
同様に設定すると、タイトル バーは消えますが、設定するまで灰色の斜めのエッジが残りますResizeMode="NoResize"
。残念ながら、このプロパティの組み合わせを設定すると、サイズ変更グリップも表示されなくなります。
カスタムでWindow
をオーバーライドしました。ウィンドウの境界線を自分で指定したいのですが、ユーザーが 4 つの側面すべてからウィンドウのサイズを変更できるようにする必要はありませんが、サイズ変更グリップが必要です。ControlTemplate
Style
誰かがこれらの基準をすべて満たす簡単な方法を詳しく説明できますか?
Window
で指定した境界線以外に境界線を付けないでくださいControlTemplate
。- 右下隅に機能するサイズ変更グリップがあります。
- タイトル バーがありません。
wpf - WPF: 境界線全体をクリック可能にする
クリックするとメニューが表示されるボタンをWPFに実装しようとしています。すべてが機能しており、コントロールの ControlTemplate を以下に示します。(コントロールは ToggleButton を拡張します)。
問題は、ユーザーがパスによって描かれた小さな矢印をクリックしたときにのみメニューが表示されることです。境界線全体を HitTestVisible にする方法はありますか?
wpf - チェック可能な MenuItem を RadioButton のコントロール テンプレートとして使用することは可能ですか?
WPF アプリケーションに、ラジオ ボタン グループのように機能する複数のオプションを含むメニューがあります (1 つを選択すると、残りのオプションが選択解除されます)。チェック可能なメニュー項目をラジオ ボタンのテンプレートとして使用したいと考えています。
テンプレートを設定しようとしましたが、期待どおりに動作しないようです。アイテムの選択と選択解除は、ラジオ ボタンの値と同期していないようです。
より複雑なテンプレートを使用して、パスなどを使用して選択したマークを「偽造」することもできると思いますが、そのような単純な目的のためには非常に多くの作業が必要です。また、より複雑なテンプレートを使用する場合は、やりたくないさまざまなテーマに対処する必要があります。
問題を示す簡単な例を次に示します。