問題タブ [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.
c# - WPF-FrameworkElement-すべての子孫を列挙しますか?
私はそのコンテンツの中にFrameworkElement
aを持っている(本当に)を持っています。ToggleButton
Popup
私はこのようにアクセスします:
通常、これは正常に機能します。ただし、ポップアップがnullになる場合があります。
これをデバッグする方法を見つけようとしています。FindNameが見つけることができるすべての「もの」を列挙する方法はありますか?
背景として、ToggleButtonでポップアップがどのように定義されているかを次に示します。
wpf - 別の FrameworkElement 内で FrameworkElement を描画する
XAML では次のようになります。
しかし、インジケーターは描画されません。私は何が欠けていますか?
wpf - FrameworkElement である値にデータ バインディングを使用する
私のデータ ソースの 1 つは、次のインターフェイスに入力される値のコレクションを生成します。
WPF でデータ バインディングを使用して、値がタブのヘッダーになり、値が対応するタブのコンテンツとして表示される IData
インスタンスのコレクションを表示したいと思います。TabControl
Name
VisualElement
ヘッダーのバインドは簡単です。ただし、値を表示できるテンプレートを定義する方法に行き詰まっていVisualElement
ます。私はいくつかの解決策を試しましたが、ほとんど成功しませんでした。私の最善の試みは次のとおりです。
私はまだWPFに非常に慣れていないので、ここで明らかなことを見逃している可能性があります。
c# - WPF FrameworkElement の親と UIElement の移動
コントロールをある親から別の親に移動しようとしています (これが機能するかどうかはよくわかりません)。動かしたいコントロールを掴むことができます。これが私のコードです:
最後のステートメントにヒットすると、「指定されたビジュアルは既に別のビジュアルの子であるか、CompositionTarget のルートです」という ArgumentException がスローされます。奇妙なことに、Parent は null を返します。親を見つける方法は?これでも機能しますか?
編集:実際に要素を移動することが私の問題に対する答えだとは思いません。私は Visual Studio SDK をUIElement
使用しており、エディター ペインを構成する を手に入れることができました (extends DockPanel
)。コントロールを標準エディターから開発中のカスタム ツール ウィンドウに移動しようとしていました。
これはハックであることが証明されており、同じコントロールの複数のインスタンスが必要であることに気付いたので、より複雑なソリューション (およびハックの少ない) が用意されていると思います。
c# - FrameworkElement obj=sender as FrameworkElement と FrameworkElement obj=(FrameworkElement) someobject の違いを教えてください
Silverlight でのプログラミングは初めてです。誰でも違いを教えてもらえますか
と
wpf - 実行時に(カプセル化された)子を動的に作成するWPF要素
実行時に子要素を完全に制御するWPF要素を作成したいのですが、プロパティが変更されたときに子UIを追加および削除します。ItemsSourceプロパティを変更したときにItemsControlが行うことと少し似ていますが、私の場合は子が1つだけです。
これはMVVMのビューコンテナになります。モデルまたはViewModelを指定すると、魔法のように正しいビューが作成され、すべてが接続されます。ビューコンテナがテンプレート化可能である必要はありません(UserControlであり、独自のテンプレートを持つユーザー定義のビューを作成するため)。可能な限りカプセル化することをお勧めします。グリッドのようなものから派生し、自分のプロパティが変更されたときに子コントロールを追加することで、おそらくこれを簡単に行うことができます。ただし、Gridは子要素のコレクションを公開し、誰でも追加および削除できるようにします。
カプセル化を最大化するには、どのWPFクラスから派生する必要がありますか?また、実行時に子要素を追加するにはどうすればよいですか?
ドキュメントの理解に基づいて、実行時に子コントロールを作成できるかどうかを確認するために、FrameworkElementとAddVisualChildを使用してみました。AddLogicalChildが必要かどうかはわかりませんが、念のために入れておきます。
ViewContainerをウィンドウに入れて実行すると、「ViewContainer」というTextBlockが表示されるはずです。しかし、代わりに、空白のウィンドウが表示されます。だから明らかに私は何かが欠けています。
上記のコードを修正して、「子」コントロールが実行時に表示されるが、他の人が混乱することのないようにするにはどうすればよいですか(回避できる以上のこと)?
wpf - WPF: TextBlock の上に描画する
TextBlock の上部に描画できるようにしたいのですが、これを行う方法を見つけましたが、そこにある描画を削除することはできません。これがコードです。
これを行う理由: 多くのセルを含むデータグリッドがあり、各セルにテキストが表示されます。セルにいくつかの検証情報を表示します。これは、テキストブロックといくつかのパスをグリッドでホストするテンプレートを使用して行います。このオーバーヘッドにより、ビジュアル ツリーに余分な要素が追加され、(ロード、ウィンドウの切り替え、または並べ替えで) 再描画する必要がある場合、ビジュアル ツリー内の要素が増えるほど時間がかかります。それが単なるテキストブロックの場合、グリッド付きのコントロールを使用するよりも約 1/3 ~ 1/2 高速です。したがって、テキストボックスのすぐ上に検証用のものを描画したいと思います。
wpf - WPFFrameworkElementがマウス入力を受信していません
OnMouseイベントを子に表示させようとしていますFrameworkElement
。親要素はaですPanel
(Background
プロパティはNullではありません)。
OnMouseが呼び出されることはなく、イベントは常に処理されず、Snoopは、ルーティングされたイベントがPanel
要素までしか到達していないように見えることを通知します。
ドキュメントはそれが入力を処理すると言いますFrameworkElement
が、なぜこのシナリオではないのですか?
wpf - キャンバス上のコントロール位置を見つける
XAML ドキュメントで割り当てられた上隅と左隅のポイントを見つける必要がありますCanvas
。Textblocks
これら2つのプロパティを取得するにはどうすればよいですか?
フレームワーク要素をループすると、Canvas
リストされているプロパティが見つからないようです。
c# - アクセス許可が拒否されました - .NET Remoting と FrameworkElementAdapters を使用したクロス プロセス UI
私の質問は、これのレプリカではないにしても、非常に似ています。腹立たしいことに、「答え」は私に多くの仕事を与えてくれず、率直に言って、私は途方にくれています。
問題はかなり明白なはずです。Managed AddIn Framework を使用せずに、プラグ可能なアプリケーション フレームワークのプロセス間で WPF 要素を渡したいと考えています。アクセス許可が非常に制限されているため、ファイルをディスクにキャッシュして制御できない環境にデプロイします。アドイン ルートを appdata に配置するという回避策がありますが、強制されたディレクトリ構造は望ましくなく、私が知る限り、それはそのフォルダの目的ではありません。
除外方法は次のとおりです。除外行は太字で強調表示されています。
p>実験では、STA スレッドでFrameworkElementAdapters.ContractToViewAdapter()を介してハンドルをアンマーシャリングする必要があるように思われた ため、呼び出しが行われました。clientはコールバックMarshalByRefObjectであり、プロキシを介してこのメソッドでアクセスされることに注意してください。ハンドルは、 FrameworkElementAdapters.ViewToContractAdapter()への呼び出しでリモートでも作成され、リモート メソッドの戻り値としてこのアプリケーション ドメインに渡されます。
私が受け取った例外はRemotingException occured - Permission denied: cannot call non-public or static methods です。
フィードバックは大歓迎です。