問題タブ [design-surface]

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 投票する
3 に答える
395 参照

silverlight - 壊れたSilverlightデザイン-VS2008の表面

VisualStudio 2008では、このスタイルをApp.xamlに追加したため、デザインサーフェスは空になっています。

データを作成するために、この必要な名前空間を上部に追加します:解決可能

Silverlightアプリを実行すると、すべてが正常に機能します。ただし、デザインサーフェスは空であり、xamlの編集中にこのエラーが表示されます。

無効な属性値data:プロパティTargetTypeのDataGridCell

前述のように、このエラーは設計時に発生するものにすぎません。コンパイルは完璧に機能します。何が間違っているのですか、デザイナーがこの名前空間を適切に解決できないのはなぜですか?

更新:また、スタイルをApp.xamlからPage.xamlに移動すると、デザイナーは再び機能します。何かアイデアはありますか?

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

c# - マウスの動きをキャッチ

状況 :

私は現在、ユーザーが新しいコントロールをデザインサーフェスにドレープ/ドロップし、これらのコントロールのプロパティを変更できるVSのようなIDEを開発することを目的としたプロジェクトに取り組んでいます。

だから私はIDesignerHost, IServiceContainer, IContainer, IComponentChangeService,それを設計するために作られた、他のいくつかの便利なインターフェースを実装しました。

すべてが正常に機能します。ツールボックス、デザインサーフェス、および正常に動作してpropertyGridいます。

問題は:

ドラッグアンドドロップされたコントロールに添付されているのは、ユーザーがマウスでコントロールを移動している間、コントロールに従わなければならないラベルです。

LocationChanged eventコントロールの移動時にラベルを移動するために、コントロールのを使用してみました。ただし、このイベントは、コントロールが移動した後に1回だけ発生するため、コントロールが移動しているはラベルは移動しません。

私はこれを機能させる方法を見つけることができません。誰か良いアイデアがありますか?

ありがとうございました

編集: IDesignerHostを実装するカスタムクラスを使用します。このデザインサーフェスのコントロールは、イベントMouse -----を発生させません(例:MouseDown、MouseMove)。

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

winforms - DesignSurface and Zoom

I am trying to implement Zoom feature on a DesignSurface, which uses .Net 2 based Designer time architecture. I have two approaches to handle ZoomChanged event:

  1. Unload the Design surface and reload with Zoomed content.
  2. Identify the affected properties and set them to Zoomed values of properties.

Problem:
In approach 1, Unload and Reload is quite a task for run-time and would unload and reload lot of properties which would not be affected by zoom change.

In approach 2, The properties being changed would raise lot of PropertyChanged events and execute relative handlers, which would make response quite slow. If, I want to unsubscribe and resubscribe all the event handlers, I would not have any single place to do it as it spans over lot of dependent components.

Any one at rescue?

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

vb.net - カスタム SplitContainerDesigner のマウス イベントのキャッチ

カスタム IDesignerHost 実装で、SplitContainer とまったく同じように、2 つのパネル間にドラッグ可能なスプリッターを提供するユーザー コントロールを作成しようとしています。私が知る限り、SplitContainer 自体はオプションではありません。Visual Studio のデザイナーで使用しない限り、例外が発生します。

私の実装は、必要なマウスイベントを受け取っていないことを除いて、おおよそ次のようになります。ユーザーコントロール自体、ホストコントロール、および親フォームでイベントハンドラー、On*オーバーライド、およびオーバーライドを試みましたが、どこにもイベントWndProcを受信して​​いないようです。このバグレポートによると、「コントロール デザイナー」で受け取る必要があります。この場合、それが何を指しているのかわかりません。WM_MOUSEMOVEWM_LBUTTONDOWNWM_LBUTTONUPWM_MOUSEMOVE

ドラッグ可能なスプリッターを実装する方法はありますか?

0 投票する
2 に答える
1385 参照

c# - PropertyGrid で Delete キーが押されたときにプロパティの値を設定する

現在、WinForms デザイナーをホストするプロジェクトに取り組んでいます。PropertyGridにドロップされたコントロールの操作プロパティを表示するために使用していDesignSurfaceます。

UITypeEditorカスタム コントロール プロパティの値を変更する を作成しました。

nullでDelete キーが押されたときにプロパティの値をリセットするにはどうすればよいですかPropertyGrid

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

winforms - Inherited Control Visible/Enabled プロパティ値 常に True: PropertyGrid

カスタム WinForms ホスティング環境を作成しました。ツールボックスと PropertyGrid があります。

ツールボックスに表示されるコントロールは、既存の WinForm コントロールから継承されます。

ドロップダウン リスト ソース:

ICustomTypeDescriptorに表示したくないプロパティを除外するために実装しましたPropertyGrid

問題:

クラスから継承されたEnabled&プロパティの値をシリアル化する際に問題に直面しています。VisibleSystem.Windows.Forms.Control

WriteProperties メソッド ( BasicDesignerLoader):

問題 # 1: &プロパティのShouldSerializeValueメソッドが常に false を返す。EnabledVisible

問題 2:ShouldSerializeValueメソッド チェックをスキップしてもGetValuePropertyDescriptor常に return のメソッドをチェックしますTrue

現在の回避策: 回避策 として、現在Enabled&Visibleプロパティを を使用して非表示にし、BrowsableAttribute他の 2 つのブール型プロパティを作成し、 を使用しDisplayNameAttributeて表示名をEnable&に変更しましVisibleた。

しかし、この回避策では、これらのスニペットをすべてのコントロールに書き込む必要があります。

私は何かを見逃していますか、何か間違っていますか?Enabled&Visibleプロパティが変更されないのはなぜですか?

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

c# - IDE と同じように、WinForms.Form のビルド済みインスタンスを VB または C# ソースコードにシリアル化します。

古いアプリによって XML ファイルから動的に生成された約 500 の WinForms があります。これらを、デザイナーで編集できる VB または C# コードに自動的に変換したいと考えています。

私はそれを手作業で行うことができますが、それには永遠に時間がかかります...

または、各 XML をロードし、古いアプリの xml-to-winform-b​​uilder を呼び出して完全な WinForm に変換し、すべてのコントロールのプロパティを調べ、StringBuilder を使用してデザイナーが飲み込むコードを生成するアプリを作成します。これはせいぜい難しいでしょう。

BUT: デザイナーが使用するのと同じコードを使用したいと思います。これにより、コーナーケースで時間を節約できると思います。

私がやりたいことは、(古いアプリの xml-to-winform コードによって作成された) 子コントロールでいっぱいのコントロール配列を持つ、既に構築された WinForm オブジェクトを取り、設計されたフォームをシリアル化するために IDE が使用するのと同じコードでそれをスローすることです。 CodeDom に移動し、実際の言語で保存できるステートメントの CodeDom リストを取得します。CodeDOM を取得したら、満足です!

編集

この Codeprojectの記事は、私がやりたいことの「概念」を体現しています。完成したフォームから始めて、それをコードとして変換 (「シリアル化」) します。ただし、2 つの欠点があります。(1) テンプレート/stringbuilder を使用して .aspx ページを生成し、そこにプロパティがあります (Web フォームでは問題ありませんが、winform はプロパティを実際の .Designer.vb ファイルにシリアル化します)。(2)これをすべてゼロから行います。Visual Studio のルーチンを再利用したい。たとえば、プロパティ グリッドなど、多くのことでこれを行うことができます。記事へのリンクを探しているだけです (おそらく私の google-fu が弱すぎたのかもしれません)、または誰かが既に行ったことからの短いコード サンプルです。

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

c# - カスタム デザイナーは、デザイン サーフェイス上のコンポーネントの表示を変更します

注意: この質問に対する可視性を高めるために、C# タグを付けました。C# での回答としては問題ありません。VB .NET に変換できます。私が直面している問題は、.NET Framework の概念にあります。

私は現在、グラフィック デザイナーを作成しており、ユーザーが独自のカスタマイズされたコンポーネントのセットをデザイン サーフェイスに追加し、それらを希望どおりに配置して、テキスト ファイルに保存できるようにしています。

ほとんどの部分で問題なく動作していますが、ユーザーに表示したくないいくつかのプロパティを非表示にするために、カスタム デザイナーを使用しようとしました。

したがって、これはそれほど複雑ではありません。デザイナーを有効にするには、コンポーネント クラス定義で属性として設定する必要があります。

したがって、これもそれほど複雑ではありません。

問題

問題は、デザイン サーフェス上に新しいMyLabelが作成され、 を設定するDesignerAttributeと、図のようにサーフェスの下に表示されることです。

カスタム コンポーネントが正しく表示されない

そして、これが私が削除したときの結果ですDesignAttribute:

カスタム コンポーネントが正しく表示されました

これは私が実際に表示したいものです。

私の質問

これを機能させるために、ここで何が欠けていますか?