問題タブ [frameworkelement]

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.

0 投票する
1 に答える
1003 参照

wpf - アンロードする前に FrameworkElement プロパティを取得する方法

UI 設定システムを実現する必要があります。UI 要素の一部のプロパティ (実行時にユーザーが変更できます) を永続ストレージからロード/保存します。例えば:

  • DevExpress グリッド コントロール - 列幅、可視性、要約領域など (このコントロールには RestoreLayoutFrom/SaveLayoutTo などのメソッド ペアのセットがありますが、SaveLayoutToStream(Xml) は grid.Unloaded ハンドラーでは機能しません - グリッドが PresentationSource から切断されている場合)
  • GridSplitter を介してユーザーが幅/高さを調整できるグリッドの行/列
  • かなりのポップアップ コントロール

コントロールのロード/初期化などの後、設定ストレージからコントロールのプロパティをセットアップするのは簡単ですが、保存する設定を取得するために、コントロールがアンロードされる前の瞬間 (ビジュアル ツリーに残っているとき) をどのように捉えますか?

簡単な説明

シングルトンを作成するつもりです-UISettingsManager。これには、[要素Uid、要素設定データ]のペアを持つディクショナリが含まれています。ビジュアル コンテナー (Window、UserControl) では、このマネージャーは次のように使用できます。

myGridControl と myPopup には (アプリケーション スコープ内で) 一意の Uid があるため、UISettingsManager は内部辞書から設定を取得してコントロールに適用できます。もちろん、UISettingsManager は、いくつかの異なるタイプのコントロールを操作する方法を知っています。

しかし、コントロールの設定を格納するのに適切なタイミングは、ウィンドウとユーザー コントロールのどちらのコンテナーでしょうか?

0 投票する
1 に答える
126 参照

wpf - ScrollViewer を FrameworkElement にアタッチしますか?

Adornerまたは他の手段を使用して、 を動的に取得しUIElement/FrameworkElement、動的に作成された 内に配置することは可能ScrollViwerですか? 明らかな問題は、最初に要素を親要素から切り離す必要があることですが、これを行うエレガントな方法を探しています。

0 投票する
1 に答える
167 参照

silverlight - FrameworkElement がレンダリングされているかどうか

FrameworkElement画面にレンダリングされたことを確認する方法はありますか。例えば。2 つの長方形があり、1 つが他の長方形と重なっています。しかし、「どれだけ」重なり合っているかはわかりません。

したがって、ユーザーが両方の長方形を見るか、1 つだけを見るか、または 1 つを完全に、もう 1 つを部分的に見るかを知る必要がありますか?

0 投票する
4 に答える
11037 参照

wpf - FrameworkElement の DataContext プロパティは要素ツリーを継承しません

こんにちは、WPF のプロの皆さん。

DataContext は FrameworkElement (すべての WPF コントロールの基本クラス) のプロパティであり、DependencyProperty として実装されます。つまり、論理ツリー内のすべての子孫要素が同じ DataContext を共有します。

ContentControl は、その子孫要素でそれを行う必要がありますか?

そうではないシナリオがあり、その不正行為の原因は何ですか?!

それについてもう少し理解するには、問題が始まるこのスレッドを読んでください(ここにすべてをコピーしたくない)...:

WPF: トリガー ターゲット 'cc' が見つかりません。ターゲットは、すべてのセッター、トリガーの前に出現する必要があります

つまり、ContentControl 内の私の DataTemplates には、バインドするものが何もないことを意味するデッド DataContext があります。実際には不可能なことです...

ContentControl の下のすべての要素は、DataContext プロパティに何も設定されていませんか???

0 投票する
1 に答える
3063 参照

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オーバーライドメソッドを実装していません。何か案は?

0 投票する
1 に答える
1490 参照

c# - C# WPF Stackpanel でプログラムによって作成された DataTemplate Dockpanel は効果がありません

リストボックスのデータ テンプレートを動的に作成しようとしています。これは、カスタム UserControl 用です。この UserControl には、任意のタイプのIEnumerable<>を受け入れるDependencyPropertyがあります。

これは正常に動作します...しかし、出力は常に

  • プロパティ/値
  • プロパティ/値

オブジェクトに 2 つのプロパティが含まれている場合。しかし、プロパティを並べて配置したいと思います。お気に入り:

オブジェクト 1:

  • プロパティ / 値 プロパティ / 値

オブジェクト 2:

  • プロパティ / 値 プロパティ / 値

どこが間違っているのですか?最初に Stackpanel を作成し、Stackpanel で、ラベルを含む Dockpanels を作成しています。

現時点での外観を少しプレビューします。ここに画像の説明を入力

したがって、これはデータテンプレートを作成するための私のコードです:

0 投票する
1 に答える
1321 参照

c# - WPFFrameworkElementマウスクリックの問題

WPFアプリでは、グリッド内に多数のCustomControlsがあります。それらのマウスクリックを処理するためMouseLeftButtonDownに、グリッドのイベントを使用し、イベントハンドラーで、どのCustomControlがクリックされたかを確認します。

この問題は、すべてのCustomControlをUserControlに配置してから、グリッド内に配置したときに発生しました。この場合、アプローチは機能しません。
それぞれの場合にクリックソースのタイプを確認したところe.Source.GetType().ToString();、次の結果が得られました。

問題がない場合(UserControlなしでCustomControlsをグリッドに配置した場合)

CustomControlsをUserControlに配置してからグリッドに配置すると

CustomControlsをUserControlに配置し、次にグリッドに配置して、外部ファイルからUserControlをロードするとXamlReader.Load

だから、私の質問:
CustomControlsをe.SourceUserControl内にあるときのように可視化するにはどうすればよいですか?

0 投票する
1 に答える
4266 参照

c# - WPFカスタムFrameworkElement/IScrollInfo

基本的なカスタム実装を備えたシンプルなテストアプリがありFrameworkElementます(以下のTestElement)。TestElementは、いくつかの描画ビジュアルを作成し、コンストラクター内で600の幅にいくつかのものを描画します。また、IScrollinfoの必要なビットを実装します。要素を含むウィンドウには、scrollviewerと最大サイズ300x300があります。スクロールバーが表示されますが、TestElementのコンテンツはスクロールされません。

誰かが私がやろうとしていることが可能かどうか、もしそうなら私が間違っていることを提案できますか?SetHorizo​​ntalOffsetで描画ビジュアルを再レンダリングすることはできますが、必要なものをすべて描画したので、パフォーマンス上の理由から再レンダリングしたくありません。

質問に意味があることを願っています。そうでない場合はお知らせください。明確にできます。

どうもありがとう-カール

xaml:

0 投票する
2 に答える
6944 参照

wpf - FrameworkElement.Name の問題

コンストラクターで Page の Name プロパティを設定しようとしています。

ただし、次のエラー メッセージが表示されることがよくあります。

x例外の詳細にドリルダウンしても、有用な情報が得られないようです (たとえば、InnerException が null であるなど) 。

ここで何が起こっているか知っている人はいますか?