問題タブ [elementhost]

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 に答える
581 参照

wpf - ElementHost の WPF フォームとグリッド バインディング アプローチでメモリの問題が発生する可能性はありますか?

ユーザーが WinForms メニュー項目をクリックすると、次のコードが実行されます。

p>

表示されるウィンドウは Infragistics XamRibbonWindow です。また、DataSource がビュー モデルの IEnumerable プロパティにバインドされている Infragistics XamDataGrid も含まれます。

このウィンドウには、データベースからアイテムの新しいコレクションを取得し、前述のビュー モデル プロパティを設定する「検索」ボタンも含まれています。これにより、グリッドに新しいコレクションが表示されます。

後で、ユーザーはウィンドウを閉じることができます。クローズを処理するためのコードは作成されていません。

私の質問は次のとおりです。

  1. ウィンドウを閉じると、ウィンドウとそのコントロールが破棄され、それにバインドされたコレクションが GC 対応になります (コレクションへの他の参照が存在しないと仮定して)。
  2. 私が説明したことで潜在的なメモリの問題が見られる人はいますか? おそらく、グリッドによって表示されるアイテムが更新される方法 (またはその他のもの) でしょうか?
0 投票する
5 に答える
3833 参照

wpf - ElementHost のサイズに基づいてフォームのサイズを変更する

があり、Form(winform)含まれていますElementhost。実行時に、WPF Usercontrols を this にホストしていelementhostます。AutoSize = Trueelementhostに使用しました。

ElementhostWPF Usercontrol のサイズに基づいて自身のサイズを変更します。しかし、ElementHost のサイズに基づいてフォームのサイズを変更する方法。

ありがとうございました、

0 投票する
3 に答える
5154 参照

c# - ElementHost内のWPFコントロールに関するレンダリングの問題

私はWinFormsコントロールを持っています。その中には、TableLayoutPanel複数を保持しElementHosts、それぞれElementHostにWPFコントロールが含まれているがあります。

コントロールのサイズがウィンドウよりも大きく、ScrollBarそこにある場合を除いて、すべてが正常に機能します。下にスクロールすると、コントロールが次のように歪んでレンダリングされます-

ここに画像の説明を入力してください

ウィンドウを最大化またはサイズ変更すると、コントロールは適切にレンダリングされます(コントロールが表示領域から外れるようにサイズを縮小してから、サイズを再度大きくして表示領域に戻します)

これは、同じウィンドウ内のWinFormsコントロールでは発生しません。WPFコントロールだけです。なぜこれが起こっているのか、そしてこれに対する解決策はありますか?

0 投票する
0 に答える
301 参照

c# - C#でElementHostをDatagridviewセルに追加するには?

ElementHost を datagridview に追加して、設計された WPF コントロールを win フォームに表示したいと考えています。私の質問は、これを行う方法です!これまでの私のコードは次のとおりです。

両方試してみましたが、うまくdgv.Columns.Add(host)いきdgv.Controls.Add(host)ません。とにかくこれを行うことはありますか?助けてくれてありがとう。

ps datagridview には 10 行が必要で、各行には各セルに 1 つのユーザーコントロールが埋め込まれています。

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

windows - ElementHost の Application.Current が null です

個人用ライブラリで WPF UserControl を使用しています。ライブラリは、私の WPF および WindowsForms プログラムに含まれています。ここで、UserControl に新しい (WPF) ウィンドウを表示する必要があります。新しいウィンドウで、所有者を設定したいと思います。私はこのようにします:

WPF プログラムで UserControl を使用すると、これは正常に機能します。

WindowsForms プログラムで UserControl を使用すると ( UserControl を ElementHost に設定しますelementHost.Child = ...)、Application.Currentnull になります。

これはよくないので、私のプログラムは例外をスローします。

なぜApplication.Currentヌルなのですか?

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

winforms - ElementHostにネストされている場合、WinFormsコントロールの所有者フォームを見つける方法は?

お客様の1人が、WinForms .NETグリッドコントロールiGrid.NET(http://www.10tec.com/)を他のWPFコントロールと一緒にWPFElementHostコンテナー内でホストしています。WinFormsフォーム内のWPFホスト内のWinFormsコントロールであるため、奇妙に見えるかもしれませんが、使用する他のWPFのもの(AvalonDock http://avalondock.codeplex.com/ドッキングコンテナー)のため、選択の余地はありません。

問題は、.NETデータグリッドコントロールのインフラストラクチャが親のWinFormsフォームを認識している必要があることですが、この状況で使用する次の構造は常にnullを返します。

つまり、この目的を目的とした標準のControl.TopLevelControlプロパティはnullを返しますが、WPFホストの場合はnullを返す可能性があります。

問題は、現在のコントロールのコードから親フォームを知る他の方法はありますか?たとえば、WinAPIハンドルまたはより優れた他のネイティブ.NETメンバーを使用していますか?

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

c# - ElementHost でホストされている WPF 要素が正しく再描画されない

C# で COM コンポーネントを実装するプログラムを作成しています。このコンポーネントは UI コンポーネントも提供します。コンポーネントへの将来の追加を簡単に実装できるようにするために、WPF を使用して Xaml で UI を記述し、それを ElementHost コントロールでラップして、ハンドルを COM コンシューマーに戻すことにしました。

ここが興味深いところです。要素は win32 タブ コントロールでホストされています。タブを初めて選択すると、正常に読み込まれます。別のタブに切り替えて戻ると、コンポーネントが正しく描画されません。マウスを移動すると、TextBox 要素が描画されますが、UserComponent 全体が再描画されることはありません。

コンポーネントの高さ/幅の値を変更することから、HwndTarget を SoftwareOnly レンダリング モードにすることまで、提案されたすべての解決策を試しました。

この時点で何を試すべきかわからないので、提案は大歓迎です。Windows フォームを使用せずにこれを行いたいと思っています。これの将来のメンテナーは最高のプログラマーではなく、手動でフォームをレイアウトしてコード ビハインドの値。

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

c# - Windows フォーム、要素ホスト、およびスタイルの継承

WPF で作成されたユーザー コントロールをホストする Windows フォーム アプリケーションがあります。これは、Element Host クラスを使用して行われます。要素ホスト コンテナー内のすべての WPF 要素は、フォントなどを含む Windows フォーム スタイルを継承します。

そうならないようにしたい。すべての要素は既定の WPF スタイルを継承する必要があるため、フォント (およびその他のスタイル) は同じです。どうすればそれを達成できますか?

すべてのデフォルトを自分で設定したくありません。

例のウィンドウ Example Window、「segeo」の「g」と「MS Sans Serif」の「S」の違いに注意してください

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

c# - Winforms/WPF で透明な ElementHost を作成する方法

長年潜んでいて独学で OOP と c# を学んできたのは、ここにいる偉大な人々のおかげです。私の問題の 99% は、ネット全体を検索することで見つけられるようですが、これで行き詰まっています。

私の問題は、WPF ユーザー コントロールをホストする elementhost コントロール要素をスタックしているカスタム GUI があることです。これらのグラフィックスを表示して動作を実行することに成功しましたが、相互に透過的ではありません。互いに重なり合うアイコンを積み重ねて、半透明のエッジでブレンドする必要があります。アイコンは paint.net で作成されており、実際に透明度の正しいグラフィックを使用しています。host.BackColorTransparency = true を使用して、これらの要素のホストを winform GUI の背景に対して透明にすることができましたが、相互に透明ではありません。

私はここでできる限り説明しようとしています。これは作業プロジェクトであるため、専有情報を表示することはできません。誰かがさらに情報が必要な場合はお知らせください。助けてくれてありがとう。

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

wpf - ElementHost でホストされている UserControl の奇妙なフォーカスの問題

にホストされている UserControl がありElementHostます。 ユーザーがEnterキーを押すかダブルクリックすると、行の新しいウィンドウが表示され(モーダルなし)、そのウィンドウが閉じられると、ElementHostを含むウィンドウが再びアクティブになります
DataGrid
問題は、DataGrid がフォーカスを失うことです。

Snoop は、ビジュアル ツリーが次の構造を持つことを示しました。

AdornerDecorator -> AvalonAdapter -> My UserControl.
Snoop は、アクティブ化後に AdornerDecorator にプロパティがあることを示しています

私にとって絶対的なナンセンスとは何ですか。
ユーザーが Tab キーまたは矢印キーを押すと、最初に有効になった UserControl の要素がフォーカスを受け取ります。

この投稿を読みましたが、満足できません:

フォーカスは、WPF と Windows フォームでは動作が異なります。また、このあたりで修正できなかった粗いエッジがいくつかありました。WindowsFormsHost 内にフォーカスがあり、フォームを最小化/復元するか、モーダル ダイアログを表示すると、WindowsFormsHost 内のフォーカスが失われる可能性があります。

それで?リラックスして幸せになれますか?
そして、非常に残念なのは、他のアプリケーションで問題を再現できないことです.

このような奇妙な行動の理由を説明できる人はいますか? いくつかの回避策が提供される場合があります。