問題タブ [winforms-interop]
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# - Winforms から WPF コントロールにデータを渡すことはできますか?
私は winforms アプリを持っていますが、WPF をさらに実装するためのテイスターとして、WPF ユーザー コントロールをアプリに導入したいと考えています。
このコントロールは、ホストから 1 つの情報 (文字列) を受け取る必要があります。これを Winforms アプリからホストされたコントロールに渡すにはどうすればよいですか?
それとも、実際にできますか?
c# - アクティビティを WPF ListBox から WorkflowView にドラッグできません
ワークフロー デザイナーを WPF アプリケーションでホストしようとしています。WorkflowView コントロールは、WindowsFormsHost コントロールの下でホストされます。別の WindowsFormsHost でホストされている PropertyGrid に正常にリンクされているデザイナーにワークフローを読み込むことができました。
再ホスト コードの大部分はhttp://msdn.microsoft.com/en-us/library/aa480213.aspxと同じです。
ToolboxItems のリストにバインドされた ListBox WPF コントロールを使用して、カスタム ツールボックスを作成しました。
ListBox_PreviewMouseLeftButtonDown ハンドラーで:
そのセットアップでは、カスタム ツールボックスからデザイナーに項目をドラッグできません。カーソルは、デザイナーのどこでも常に「いいえ」と表示されます。
私は半日の間、ネット上でこれについて何かを見つけようとしてきました.
どんなフィードバックでも大歓迎です。ありがとうございました!
カルロス
mfc - Vista 64 ビットの winforms ウィンドウでの MFC Active-X コントロール。「クラス未登録例外」
winforms ウィンドウでホストされている ActiveX コントロールでのキー処理に関する別の SO ポスターの提案を確認しようとして、最低限の MFC ActiveX コントロールを作成してから、それを Windows フォームに配置しようとしました。設計時には、コントロールは問題なく表示されました。
アプリケーションを実行すると、恐ろしい「クラスが登録されていない例外」が発生します。ダイアログが表示されます。
どちらのプロジェクトも VS 2008 です。Winforms アプリは .Net 3.5 フレームワーク アプリケーションです。
エクスプローラーからデバッガーを実行してみましたが (どちらの場合も昇格された特権)、何も機能していないようです。OCX を 64 ビットと 32 ビットの両方の regsvr32 実行可能ファイルに手動で登録したことも確認しました。
これが実行されないとは思っていなかったので、これは私を困惑させました。私は職場 (32 ビット Windows XP ボックス) で同様の実験を行いましたが、問題はありませんでした。
私のVS構成は次のとおりです。
マイクロソフト ビジュアル スタジオ 2008
バージョン 9.0.30729.1 SP
マイクロソフト .NET フレームワーク
バージョン 3.5 SP1
最も紛らわしい点は、ActiveX コントロールが設計時に表示されるように見えることです。回答、提案、または考えをいただければ幸いです。
winforms - ネイティブウィンドウでのWindowsフォームコントロールのホスティング、window class = "Static"
ネイティブアプリケーション(Visual Studio)にWindowsフォームコントロールを提供する必要があります。
そこで、コントロールを作成してそのハンドルを提供します。
次に、Spy ++を使用してネイティブウィンドウを確認すると、コントロールがウィンドウクラス="Static"およびタイトル"This is a static!"の追加の'control'にラップされていることがわかります。私はそれにいくつかの問題があります:
- ホスティングウィンドウによってコントロールに送信されたサイズ変更イベントは、サイズ変更されるように「静的」に再送信する必要があります(そうしないと、コントロールが静的サイズ内に部分的に非表示になります)。
- スタティックにはがないため
WS_EX_CONTROLPARENT
、KB149501が表示されます(つまり、アプリケーション全体がフォーカスを失った状態でハングします)。 - 適用する
WS_EX_CONTROLPARENT
と、静的内のリストボックスは再描画を停止します。
私は何か間違ったことをしていると思いますが、何が起こっているのかわかりません。staticはC#キーワードでもあるため、Googleは役に立ちません。そのため、WinFormsの結果で頻繁に発生します。
wpf - .NET 2.0 アセンブリから winforms または WPF でホットキーをフックする方法は?
.NET 2.0 を対象とするアセンブリを使用して、幅広いアプリケーションと互換性を持たせています。デスクトップ アプリケーション (winforms または WPF) で使用する場合、特定のホットキーをフックし、モードレス ダイアログ ウィンドウをポップアップしたいと考えています。難しいのは、WPF と互換性のある .NET 2.0 で実装できるソリューションを見つけることです。
Winforms の場合、 RegisterHotKeyを使用するか、IMessageFilter を実装してPreFilterMessageメソッドでWM_KEYDOWNをフックできますが、WPF ではうまく機能しません。
WPF の場合、InputBindingクラスは非常に優れていますが、これは .NET 2.0 では使用できません。
理想的なソリューションは次のとおりです。
.NET をターゲットとするアセンブリをビルドする
WPF または Winforms のキーストロークをフックする
システム全体ではなく、アプリケーション全体のスコープを提供する
c# - wpf相互運用機能からwinformsデータにアクセスする方法は?
私のソリューションには2つのプロジェクトがあります。
WPF相互運用性のElementHostを使用して、WpfControlLibrary1のUserControl1をホストしています。
今、
「thismsgbox」にlabel1の内容を表示したい。
どうすればよいですか?
c# - WPFが埋め込まれたWinformsコントロールからのWPFコマンドの呼び出し
WinDataGrid
Infragisticsから拡張されたクラスがありUltraGrid
ます。WinDataGrid
を使用して、WPFユーザーコントロール内に自分を埋め込みましたWindowsFormHost
。DelegateCommand<IList>
行が選択されたら、選択した行のコレクションで事前定義を呼び出す必要があります。
どうすればいいですか?
背景として、WPFDataGridとInfragisticsWinGridの両方を使用するWPFアプリがあります。WPFグリッドはすでにほとんど配線されているので、Winformsグリッドの配線には、既存のコマンドなどを可能な限り活用したいと思います。マッピングが必要な場合があることはわかっていますが、ほとんどのものをマッピングできるはずです。
c# - コンテナー/ラッパーを介して WPF フォーム内で WinForm フォームをホストすることは可能ですか?
WPFフォーム内のある種のコンテナまたはラッパータイプのコントロール内に(単一のコントロールだけでなく)完全なWinFormsフォームをホスト/表示する方法はありますか? 概念がphpまたはiframeのhtmlからの仮想インクルードに似たものを探しています。おそらく、OCX または DLL にコンパイルすることによって。
c# - C# ActiveX コントロールで親コントロール イベントを処理する
C# で ActiveX ユーザー コントロールを作成しました。その ActiveX コントロールは、Delphi で記述された IE で実行されるレガシー アプリケーション内でホストされます。すべてが機能します。私の唯一の問題は、私をホストしているコントロールのイベント (たとえば、サイズ変更イベント) をサブスクライブする必要があることです。
現在、私はそれを行うことができず、IE ウィンドウのサイズを変更すると、コントロールがSizeChanged
イベントを取得しません。親コントロールのイベントをサブスクライブしようとしましたが、親コントロールが null としてリストされています。(Delphiの問題だと思います。)
これを機能させる方法があるかどうかを知りたいです (おそらく実装する必要があるいくつかのインターフェイス?)。
これが私のコントロールのコードの例です:
c# - タイトルバーボタンのツールチップテキストを上書きする(閉じる、最大化、最小化、ヘルプ)
フォームのメインタイトルバーのボタンに表示されるツールチップのテキストを変更しようとしてきました。
一言で言えば、Windowsフォームの[ヘルプ]ボタンを利用して、他の目的を持っています。これは正常に機能しています。問題は、そのボタンの上にマウスを置くと、「ヘルプ」ツールチップが表示されることです。これは、アプリケーションにとって意味がありません。
理想的には、アプリケーションのツールチップのテキストを変更する方法があります。ただし、この時点では、ツールチップを完全に無効にする方法を見つけるだけで満足できます。
regeditの「UserPreferencesMask」キーを変更することでOS全体のツールチップを無効にできることは知っていますが、これを自分のアプリケーションにのみ影響させる方法が本当に必要です。
繰り返しになりますが、理想的にはマネージコードでこれを行う方法がありますが、WindowsAPIなどにリンクすることに反対することはありません。
この問題を解決するための提案をありがとう!