問題タブ [contentcontrol]
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 - ユーザーコントロールのWPFエキスパンダーがListBoxアイテムで透過的にレンダリングされる
リストボックスにレンダリングされるユーザーコントロールにあるWPFエキスパンダーに問題があります。基本的に、リストボックス内の各ListItemでPopUpButtonの動作を取得しようとしています。エキスパンダーを開くと、コンテンツは透明であるかのように、またはzオーダーで低くなるように、他のすべての背後にレンダリングされます。WPFポップアップとトグルボタンでもこれを試しましたが(Karle Shivlletのブログ–ポップアップコンテンツを使用したエキスパンダーコントロールで説明されている手法を使用)、役に立ちませんでした。
まず、私がやろうとしていることについて説明しましょう。アプリケーション用に構成する必要のある入力のリストを表示する2つのコントロールがあります。簡単にするために、1つのユーザーコントロールを使用してグラフへの入力を構成し、別のコントロールを使用して単純なExcelグリッドへの入力を制御します。グラフとグリッドの入力にはそれぞれ、構成する必要のあるプロパティがあります。グラフまたはグリッド用に構成する入力のリストを含むListBoxをレンダリングするInputSelectControlと呼ばれる単純なユーザーコントロールを開発しました。ListBoxの各ListItemは、入力の名前(Pressure、ECGなど)のTextBlockと、クリックするとその入力のプロパティエディターを表示するWPFExpanderで構成されます。プロパティエディタの表示は、グラフ入力とグリッド入力のどちらを扱っているかによって異なるため、ControlTemplate型のInputSelectControlでDependencyPropertyを使用しました。これにより、グリッドとグラフがそれぞれ、入力プロパティの編集に必要なプレゼンテーションを提供できるようになります。また、この動作を必要とするグラフとグリッド以上のものがあることに注意してください。したがって、これをプレゼンテーション動作を動的に受信できるユーザーコントロールにしたいという要望があります。
エキスパンダーをプロパティエディターテンプレート内に配置しようとしました。また、さまざまな場所でZIndexを試してみましたが、常に同じ動作になり、エキスパンダーポップアップがリストのListItemsの後ろに表示されます。
以下は、私のアプローチをさらに説明するコードです。うまくいけば、誰かがこの漬物から私を助けることができます。
InputSelectControlを保持するグリッド(グラフなど)コントロールを表すXAML:
入力のリストを表示するInputSelectControlを表すXAMLと、プロパティを編集するための「Popupの動作」が必要な各ListItemのContentControlプレースホルダー:
ポップアップに表示するプロパティエディタテンプレートを挿入するためのDependencyPropertyを表すC#。
グリッドプロパティを編集するためのプレゼンテーションを説明するテンプレートであるGridInputPropertyEditorを表すXAML。これはグラフでは異なります。
Snoopを使用すると、ListBoxアイテムのZ-Indexを高い数値に設定すると、プロパティエディターが前面に表示されることがわかりました。誰かがこれを回避するより良い方法を見つけたら、私に知らせてください。それ以外の場合は、選択したアイテムに基づいてzindexを上下させるトリガーを考え出すのに役立つ可能性があります。
wpf - ContentControl 内の WPF アクセス制御
コード ビハインドから ContentControl 内からグリッド (listBoxGrid) にアクセスしようとして非常に苦労しています。どんな助けや指針も素晴らしいでしょう!
ありがとうライアン
私が試してみました
しかし、それはうまくいかないようです。
wpf - WPF: トリガー ターゲット 'cc' が見つかりません。ターゲットは、すべてのセッター、トリガーの前に出現する必要があります
次のコードの何が間違っていますか?
コンパイル中に次のエラーが発生します。
'cc' という名前の要素が見つからなかったため、プロパティ 'TargetName' は 'Setter' の有効なターゲットを表していません。ターゲットは、それを使用するセッター、トリガー、または条件の前に宣言されていることを確認してください。
エラーなしでコンパイルできるようにコードをリファクタリングするにはどうすればよいですか?
PersonViewModel の値にバインドされた DataTrigger を使用してデータ テンプレートを切り替えたいだけです。
silverlight - Silverlight リストボックスのカスタム スタイル
以下のようにリソースファイルにスタイルを定義しました
ここのデータテンプレートに何を入れるか迷っています
使ってみた
そしてさえ
しかし、このエラーが発生しました
プロパティ 'System.Windows.FrameworkElement.Style' への割り当てに失敗しました。
DataTemplate
カスタム スタイルを提供したい場合、タグの間に何を入れればよいですか?
wpf - ContentControl クラッシュでのバインド
これが私のアプリをクラッシュさせる理由を誰か教えてもらえますか? 理由がわからないという無限の再帰があるようです。この例外が発生します
ツリーのトラバース中に、論理ツリーの深さを超えました。これは、ツリーのサイクルを示している可能性があります
そして、これは私がソースとして持っているすべてです
wpf - カスタムWPFキャンバスでの強制配置
私はカスタムグラフィックエディタの作成を含むプロジェクトに取り組んでいます。グラフィカルエディタには複数のタブがあり、各タブのコンテンツのビットマッププレビューを含むポップアップを表示するプレビュー関数を作成したいと思います。ただし、私が直面している問題は、適切なプレビューを生成する前に、各タブのコンテンツを配置する必要があることです。これは、各タブに移動して、タブがレンダリングおよび配置されていることを確認することを意味します。次に、その場合にのみ、プレビューが適切に生成されます。そうでない場合、プレビューのサイズは0x0になります。適切なサイズのプレビューを生成できるように、コンテンツコントロールを強制的に配置する方法を知っている人はいますか?
wpf - WPF - DrawingVisual としての ContentControl コンテンツ
ContentControl の Content プロパティを DrawingVisual オブジェクトに設定できますか? ドキュメントには、コンテンツは何でもかまいませんが、試してみましたが、コントロールをキャンバスに追加しても何も表示されません。可能であれば、コンテンツが DrawingVisual である ContentControl をキャンバスに追加する完全なコードを投稿できますか?
wpf - WPF-カスタムキャンバスへのContentControlの追加
Canvasから継承されたカスタムDrawingCanvasがあります。次のコードを使用してContentControlをDrawingCanvasに追加すると、何も表示されません。
GraphicsRectangleはDrawingVisualであり、上記のコンストラクターは、左上の点(0,0)と長さが200のRectをGraphicsRectangleのdrawingContextに描画します。DrawingContainerはFrameworkElementであり、コンストラクターで指定された1つの子があります。DrawingContainerは、GetVisualChildおよびVisualChildrenCountオーバーライドメソッドを実装します。最後に、ContentControlのContentプロパティがDrawingContainerに設定され、DrawingVisualのコンテンツを表示できるようになります。
作成したContentControlを通常のCanvasに追加すると、コントロールが正しく表示されます。その理由は、DrawingCanvasがArrangeOverrideメソッドを実装していないためだと思います。MeasureOverrideメソッドのみを実装します。また、DrawingContainerはMeasureおよびArrangeオーバーライドメソッドを実装していません。何か案は?
wpf - WPF-Canvas内のContentControlのクリッピング
ContentControlがあり、そのコンテンツはカスタムFrameworkElementです。FrameworkElementには子が1つだけあり、それはDrawingVisualです。基本的に、ContentControlはDrawingVisual(図形を含む)のコンテナーであり、ContentControlには、ユーザーがコントロールをドラッグ、サイズ変更、回転するために使用するサムがあります。ContentControlが表示するCanvasに追加されます。ContentControlのクリッピング領域をCanvasの特定の領域に設定したいと思います。ただし、ContentControlのClipプロパティをこの領域(Canvas座標系で指定されたRectangleGeometry)に設定すると、ContentControl内のDrawingVisualは、指定された領域がContentControlの座標系にあるかのようにクリップされます。
この領域内でのみドラッグするようにユーザーを制限できますが、それはしたくありません。ユーザーが外側にドラッグできるようにしたいのですが、ContentControlの一部が外側にある場合、その部分をレンダリングしたくありません。これどうやってするの?
wpf - UserControlWPFの装飾
次のようなグループでいくつかのコントロールを装飾したいと思います。
そして、次のような他のXAMLファイルで使用します。
しかし、それは機能しません。私は何を間違えましたか?:) ありがとう