問題タブ [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.
c# - WPF.ListBox からのドラッグとホストされた ActiveX コントロールへのドロップの実装
(activeX) VisioDrawingControl (WindowsFormsHost を使用) をホストする WPF アプリケーションがあります。WPF リストボックスから要素をドラッグして ActiveX コントロールにドロップするドラッグ アンド ドロップ動作を実装しようとしています。
XAML からドロップ イベント ハンドラーを追加すると、"DragDrop" イベントはこの ActiveX コントロールに対して無効であるという例外が発生します。他のドラッグ & ドロップ標準イベントでも同じ例外が発生します。C# コードからそれらを追加しようとすると、それらはオブジェクトのメンバー リストに存在しません。
マウス イベントを使用して再試行しましたが、うまくいきません。実際、ドラッグが ActiveX コントロールの外で開始された場合、ActiveX コントロールの MouseUp イベントは発生しません。
何かヒントはありますか?ありがとうございました
c# - WindowsFormsHost に Winform を追加する方法
私の主なプロジェクトはWPFの下にあり、私のソリューションには次のものがあります:
- 名前が Form1 の winform
- MainWindow.xaml という名前の wpfForm
私はこの仕事をしたい: ボタンがクリックされた場合、MDIとまったく同じように MainWindow に Form1 を表示します。
wpf - フォーム イベントは、NavigationService を介して発生しません
WPFページ内にWindowsFormsHostがあり、Page1と言います
WindowsFormsHost には、Form1 という子の winform があります。
Form1 には Paint メソッド Form1_Paint(); があります。
NavigationService を使用して Page1 から Page2 に移動しています。
NavigationService.GoBack() を使用して Page2 から Page1 に戻ると、Page1 の Page_Loaded イベントが発生しますが、Form1_Paint() メソッドは発生しません。
Page_Loaded() イベントが Back Navigation によって発生したときに発生する WinForm イベントが必要です。
c# - メインフォームだけをWPFWindowsに変換する
メインフォームを持つWindowsフォームプロジェクトがあり、このフォームで他のフォームをmdiとして開きます(他のフォームはメインフォームの内部で開きます)
私の上司は、メインフォームをwpfテクノロジーに変更するように私に言いました(アニメーションなどを追加するため)
ここで、winformを配置するために中央に1つのグリッドがあるwpfに1つのメインウィンドウが必要です。
この場合、この仕事をするための最良のアイデアは何ですか。
.net - PDFを表示することに焦点を当ててホットキーを食べる
SOで見つけたコードを使用して、COMベースのAcrobat Readerを使用し、WindowsFormsHostでのホスティングを介してPDFを表示しました。
PDFを正常に表示します。2つの問題:
PDFをロードすると、コントロールAxAcroPDFLib.AxAcroPDFがフォーカスされます
以前に焦点を合わせたい
AxAcroPDFLib.AxAcroPDFにフォーカスがある場合、ホットキー(N)を消費します。
AltキーはNに下線を付けません。ユーザーがAxAcroPDFLib.AxAcroPDFを選択した場合でも、ホットキーを機能させたいと思います。
これはWPFのCOMとAdobeであり、答えがない可能性があることを理解しています。PDFを表示するための無料または安価なWPFコントロールがある場合は、その道を進んでいきたいと思います。これは商用アプリケーション用であるため、商用利用には無料(または安価)である必要があります。
これはPDFを表示します。本番アプリケーションでは、使用したアクションに基づいてさまざまなPDFを表示します。
wpf - WindowsFormsHost は、アプリケーションの他の wpf フォームによってアクティブ化されていても、アプリケーションのアクティブ化にフォーカスを奪います
私のケースを再現するには(.net 4.0)
- WPF アプリケーション (MainWindow.xaml) を作成する
- テキスト ボックス (UserConrol1.cs - Winform) を含む Winform ユーザー コントロールを追加します。
- Windowsformshost を使用して UserControl1 を MainWindow.xaml に配置します。
- テキストボックス (wpf) を含む別の WPF ウィンドウをプロジェクト (Window1.xaml) に追加します。
- MainWindow InitializeComponent の後に Window1 を作成して表示する
プロジェクトの準備が整いました。
- Project を実行し、MainWindow.xaml (WindowsFormsHost にあるもの) にフォーカスされたテキスト ボックスを設定します。
- ウィンドウを開いてアプリケーションを非アクティブ化します (Windows ファイル エクスプローラー、メモ帳、winamp など)。
- マウスでテキストボックスをクリックして、Window1ウィンドウのテキストボックスに書き込んでみてください
また、Window1 のテキストボックスにフォーカスを設定できないことがわかります。これは、MainWindow Texbox (winformshost では、アプリケーションがアクティブになったときにフォーカスが奪われるためです)
何か案が?
MainWindow.xaml
MainWindow.xaml.cs
Window1.xaml
Window1.xaml.cs
.net - WindowsFormsHost を使用せずに WPF で PDF を表示する
PDF を表示するためのネイティブ WPF コントロールはありますか? PDF ファイルをロードし、その上に追加の注釈を表示するプログラムを作成しています。
WindowsFormsHost コントロールは常に他のすべての上に表示されるため、WindowsFormsHost (http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/) を使用しても機能しません。ウィンドウ内の WPF コントロール。これにより、私の注釈が PDF 上に表示されなくなります。
必要なズーム詳細レベルで PDF をラスター イメージに変換すると、大きすぎるファイルが作成されます。
WebBrowser コントロールでは、ページをプログラムで変更またはズームすることはできません。Adobe ツールバーも削除できません。
私が使用したサードパーティのライブラリはすべて無料である必要があります (ビールの場合と同様)。
wpf - WPF WindowsフォームホストのActiveXコントロールが表示された後に表示されない
windowsformhost に格納された activex コントロールを含む wpf ユーザーコントロールがあります。ViewModel1 が純粋な WPF ビューにマップされ、ViewModel2 が wpf コンテンツと上記のユーザー コントロールにマップされるという MVVM パターンを使用しています。
ViewModel2 が「非表示」になってから可視になると、その内部の Activex コントロールは表示されません (具体的には、VLC ActiveX コントロールについて話しています)。
ボタンとユーザーコントロールを使用して、非 MVVM パターンでテストしました。ボタンを押すまでユーザーコントロールは非表示になり、同じことが起こりますが、ユーザーコントロールにメソッドを作成してactivexコントロールをwindowsformhostに再アタッチすると、再び表示されます。ビューモデルからこのメソッドを呼び出すと、まだ空白のままです。これを再び表示する方法を知っている人はいますか?
編集-wpfアプリケーションで透過性をオンにしていることが原因であることがわかりました。windowsformshost と透過性を有効にすると、私がやりたいことができないようです。
wpf - WPF WindowsFormsHost で WinForms DataGridView をスクロールします。
WindowsFormsHost を持つフレームを含む Scrollviewer があります。WindowsFormsHost には DataGridView が含まれています (WPF DataGrid コントロールでこれを行わない理由を聞かないでください)。
スクロールビューアでスクロール中にDataGridViewが表示エラーを引き起こすため、スクロールビューアを無効にして、DataGridViewでスクロールを有効にしました。
これはうまくいくようです。ウィンドウのサイズを変更しない限り。ウィンドウのサイズを変更すると (スクロールビューアー、フレーム、WindowsFormsHost を含むすべての子要素のサイズが変更されます)、DataGridView のスクロールバーが消え、グリッドをスクロールできなくなります。ウィンドウのサイズを元のサイズに変更できますが、スクロールバーはまだ非表示になっています。
なぜこれが起こるのか、それを修正する方法はありますか? また、1 ピクセルだけのサイズを変更していて、これが発生するため、それらが消える理由もわかりません。
.net - WindowsFormsHost コントロール - 例外処理
いくつかの WindowsFormHost コントロールを必要とする WPF ウィンドウがあります。このようにコントロールをモデル化すると、例外が表面に浮かび上がらず、静かに処理されることに気付きました。
どうすればこの動作を回避できますか?
Window の Loaded Event Handler コードで例外をスローして、これをテストしました。WindowsFormsHost コントロールの 1 つをコメント アウトすると、例外処理は通常どおりになり、コードが壊れますが、下のコードのようにすると、例外がキャッチされたかのように Window が表示されます。