問題タブ [windowsformshost]
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 - WindowsFormsHost Winform pdfviewer コントロールの問題
内部でWinforms pdfviewerを使用してpdfファイルを表示しています。また、ドキュメントの詳細を入力するためのテキストボックスがいくつかあります。最後に、このユーザー コントロールを表示するポップアップ。問題は、テキスト ボックスに何かを入力しようとすると、ntn が発生することです。テキスト ボックスを右クリックすると、切り取り、コピー、貼り付けのオプションを含むコンテキスト メニューが表示されます。少しグーグルで調べたところ、以下のようなものが見つかりましたForms.Integration.WindowsFormsHost.EnableWindowsFormsInterop()
。この行をロードされたイベントに配置しましたが、これは機能していません。誰もが同様の問題に直面し、解決策を持つことができますか? ありがとう。レイ
wpf - System.AddIn を使用する WPF アプリケーションの終了時の「無効なウィンドウ ハンドル」
WindowsFormsHost コントロールにラップされた Windows フォーム ベースのコントロールで発生していたメモリ リークの問題を解決するために System.AddIn を使用している WPF アプリケーションに取り組んでいます。アドインは、WindowsFormsHost のオーバーヘッドを回避するために、必要に応じて Windows フォーム ベースのコントロールをロードおよびアンロードするために使用されます。このオーバーヘッドは、WPF の現在のバージョンでアプリケーションが閉じられるまでハングアップし、Windows フォーム ベースのコントロールでメモリ リークが発生します。クリーンアップ ロジックが正しくありません。
私たちが直面している問題は、アプリケーションでアドインをロードおよびアンロードした後、WPF アプリケーションがアプリケーションの終了時に「無効なウィンドウ ハンドル」の Win32 例外をスローすることです。これは通常、重大な懸念事項ではありませんが、例外をキャッチすることは可能ですが、Windows がアプリケーションをクラッシュしたと認識し、Windows 7 でクラッシュ ダイアログを表示するのを止めることはできず、これは容認できません。
コードに関して、関連する事実は次のとおりです。
この例外は、アドインが WPF ホスト アプリケーションによってロードおよびアンロードされた場合にのみ発生します。アドインをアンロードする前に呼び出されるカスタム Dispose メソッドの一部として、アドイン内の WindowsFormsHost コントロールと Windows フォーム ベースのコントロールを破棄します。
アドインはアンロードの前に (上記の破棄プロセスの一部として) ディスパッチャをシャットダウンしています。これは、MSDN のドキュメントとブログの投稿に記載されていたものであり、この問題を解決するために必要でしたが、この場合は発生しませんでした。
一部のレポートには Windows フォーム ベースのコントロールが必要であり、変換するレポート ファイルが多すぎ、適切な WPF バージョンがなく、変更する時間がないため、Windows フォーム ベースのコントロールを使用する選択肢はありません。
私はコードのサンプルを提供することができないので、私が見逃したものがある場合に備えて、そのようなシナリオでの考えや以前の経験に手を差し伸べています.
wpf - Application.IdleイベントがWPFアプリケーションで発生しない
Application.Idleイベントを使用して「遅延」したアクションを実行するサードパーティのWindowsフォームコントロールを使用しています。
アプリケーションをWPFに移動したので、これらのアクションは機能しなくなりました。System.Windows.Forms.Application.Idleイベントが期待どおりに発生しないことがわかりました。
WPFアプリケーションでIdleイベントを発生させて、そのサードパーティのコントロール(WindowsFormsHost内)を引き続き使用できるようにするにはどうすればよいですか?Windowsフォームコントロールを変更することはできません。
wpf - WindowsFormsHost の使用時に WPF が常に再描画されるとは限らない
Control
を使用してマネージド DirectX をホストしている単純なアプリケーションがありますWindowsFormsHost
。Control
ちらつきを防ぐために、ペイント メソッドをオーバーライドしました。
マネージド DirectX を定期的に無効にしてControl
再描画するタイマーがあります。
私の問題は、コンピューターをロック (WIN + L) してからロックを解除すると、周囲の WPF コンテンツWindowsFormsHost
が完全に描画されないことがあります。ウィンドウを完全にビューの外にドラッグするまで、さまざまな部分が描画されません。WPF が再描画を終了しない理由についてのアイデアはありますか?
あいまいすぎて問題を解決できない場合は申し訳ありませんが、これ以上ソース コードを共有することはできません。
wpf - WindowsFormsHostおよびDependencyProperty
WindowsFormsHostクラスを使用してWPFコントロールとしてラップしようとしているWindowsフォームコントロールがあります。レガシーコントロールをビューモデルにバインドしたいと思います。具体的には、コントロールは、ビューモデルをバインドしたいグリッドプロパティGridVisibleを公開します。依存関係プロパティを表すために、プライベートの静的バッキングフィールドと静的な読み取り専用プロパティを使用しています(機能的には静的なパブリックフィールドと同じですが、混乱が少ないです)。XAMLを介してコントロールのGridVisibleプロパティを設定しようとすると、更新されません。アイデア?私は間違って何をしていますか?
DrawingHostクラス
XAML
wpf - 依存関係プロパティによるラッピング
WindowsFormsHost
WPFのデータバインディング機能にアクセスするために、派生クラスでラップしているWindowsフォームコントロールがあります。Formsコントロールは、標準のプロパティ変更イベント通知機能とともに、その状態を示すプロパティを公開します。
たとえばZoom
、Formsコントロールのプロパティにはイベントが付随していZoomChanged
ます。WindowsFormsHost
ラッパーでは、基になるWindowsフォームコントロールプロパティを表すためにを使用していますDependencyProperty
。PropertyMetaData
バインディングは、割り当てコールバックを使用してコントロールに行くと期待どおりに機能します。ただし、プロパティの変更をラップされたコントロールからバインドされたサブスクライバーに正しく伝播する方法がわかりません(つまり、WindowsフォームコントロールがZoom
プロパティを変更してZoomChanged
イベントを発生させます)。これを達成する方法について何かアイデアはありますか?別のアプローチを使用する必要がありますか?
wpf - WPF でホストされている Windows フォーム ユーザー コントロール - Leave イベントをキャプチャする方法は?
私の WPF アプリケーションでは、カスタム Windows フォーム ユーザー コントロールを他の wpf コントロールと共にホストしています。私のカスタム ユーザー コントロールは、WindowsFormsHost コントロールを使用して wpf でホストされています。このカスタム ユーザー コントロールには、他のカスタム ウィン フォーム コントロール (子コントロール) (いわば親) が含まれています。子コントロールは、単一または複合コントロールにすることができます。
ユーザーが親カスタム ユーザー コントロールの最後の子ユーザー コントロールから wpf ユーザー コントロールに移動したときに、子コントロールの leave イベントをキャプチャするにはどうすればよいですか?
MSDN ( http://msdn.microsoft.com/en-us/library/ms751797.aspx ) によると、脱退イベントは次のシナリオではサポートされていません。
次のフォーカス変更が発生した場合、Enter イベントと Leave イベントは発生しません。
シナリオ 1 と 2 は、まさに私が苦労しているものです。この問題の解決策はありますか? いくつかの回避策または何かをいただければ幸いです:)
よろしくお願いします、
OKB
wpf - WPF の WindowsFormsHost コントロールでキーボード入力をトラップする
WinForms ユーザー コントロール内に ActiveX コントロールがあります。私の WinForms アプリは気に入っています。
次に、WPF に移り、WindowsFormsHost コントロールでユーザー コントロールを使用します。うまく機能します...しかし、このコントロールを単一の要素として扱いたいので、ユーザーは既存のWPFコントロールの上でTABをきちんと押すことができ、このユーザーコントロールは「中に入る」ことはありません。つまり、他のすべてのコントロールと同様に、単一のコントロールとして扱います。
私が必要としているのは、キーをトラップする機能であり、イベント ハンドラーではフォーカスをシーケンス内の次のコントロールに移動するだけですが、キーボード入力をトラップできないようです。私はWPF PreviewKey..イベントなどを試しましたが、タブがコントロールに到達すると、コントロール内にとどまっているように見え、WPF イベントは無視されます。
多くのWPFの本やネットでこれに関するものを見つけることができませんでした。誰でも方法を提案できますか?
ありがとう、ジャック。
wpf - WindowsFormsHost を使用した WPF TabControl の不明な境界線の問題
WPF でテキスト エディターを作成していますが、削除できない奇妙な境界線があるようです。
タブコントロールを持つグリッドがあり、ユーザーが「ファイル -> 新規」を選択すると、プログラムで新しいタブアイテムをタブコントロールに追加します。ScintillaNet WinForms コントロールをホストするために、tabitem コンテンツを WindowsFormsHost のインスタンスに設定しています。
ここに問題があります: http://i.stack.imgur.com/kotSb.png
同じ構成の他の場所で使用したことがあり、境界線がないため、境界線が WinForms コントロール自体から来ているのではないと確信しています。
表示される赤い境界線は、問題を強調するために私が追加したものです (File -> New に応答するメソッド内)。次のコードを使用します。
この内側の灰色の境界線はどこから来ているのでしょうか?
wpf - WPFTabControl/ファイルを開くには子WindowsFormsHostを見つける必要があります
TabControl
WPFでテキストエディターを作成しようとしていますが、[ファイル]-> [開く]アクションに応答して、内のエディターの正しいインスタンスを見つけようとして問題が発生します。
タブアイテムはプログラムで追加され、WindowsFormsHost
インスタンスが含まれています。これにより、各タブでScintillaNetWinFormsコンポーネントによって提供されるエディターを表示できます。
タブが選択され、ユーザーが[ファイル]-> [開く]を選択した場合、ファイルを正しいScintillaインスタンスにロードできるように、タブの選択に基づいて正しいWindowsFormsHostインスタンスを見つける必要があります。
以前は、WinFormsで次の操作を行うだけでこれを実行していました。
これはWPFでどのように機能しますか?