問題タブ [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.
silverlight - 壊れたSilverlightデザイン-VS2008の表面
VisualStudio 2008では、このスタイルをApp.xamlに追加したため、デザインサーフェスは空になっています。
データを作成するために、この必要な名前空間を上部に追加します:解決可能
Silverlightアプリを実行すると、すべてが正常に機能します。ただし、デザインサーフェスは空であり、xamlの編集中にこのエラーが表示されます。
無効な属性値data:プロパティTargetTypeのDataGridCell
前述のように、このエラーは設計時に発生するものにすぎません。コンパイルは完璧に機能します。何が間違っているのですか、デザイナーがこの名前空間を適切に解決できないのはなぜですか?
更新:また、スタイルをApp.xamlからPage.xamlに移動すると、デザイナーは再び機能します。何かアイデアはありますか?
c# - マウスの動きをキャッチ
状況 :
私は現在、ユーザーが新しいコントロールをデザインサーフェスにドレープ/ドロップし、これらのコントロールのプロパティを変更できるVSのようなIDEを開発することを目的としたプロジェクトに取り組んでいます。
だから私はIDesignerHost, IServiceContainer, IContainer, IComponentChangeService,
それを設計するために作られた、他のいくつかの便利なインターフェースを実装しました。
すべてが正常に機能します。ツールボックス、デザインサーフェス、および正常に動作してpropertyGrid
います。
問題は:
ドラッグアンドドロップされたコントロールに添付されているのは、ユーザーがマウスでコントロールを移動している間、コントロールに従わなければならないラベルです。
LocationChanged event
コントロールの移動時にラベルを移動するために、コントロールのを使用してみました。ただし、このイベントは、コントロールが移動した後に1回だけ発生するため、コントロールが移動している間はラベルは移動しません。
私はこれを機能させる方法を見つけることができません。誰か良いアイデアがありますか?
ありがとうございました
編集: IDesignerHostを実装するカスタムクラスを使用します。このデザインサーフェスのコントロールは、イベントMouse -----を発生させません(例:MouseDown、MouseMove)。
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:
- Unload the Design surface and reload with Zoomed content.
- 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?
vb.net - カスタム SplitContainerDesigner のマウス イベントのキャッチ
カスタム IDesignerHost 実装で、SplitContainer とまったく同じように、2 つのパネル間にドラッグ可能なスプリッターを提供するユーザー コントロールを作成しようとしています。私が知る限り、SplitContainer 自体はオプションではありません。Visual Studio のデザイナーで使用しない限り、例外が発生します。
私の実装は、必要なマウスイベントを受け取っていないことを除いて、おおよそ次のようになります。ユーザーコントロール自体、ホストコントロール、および親フォームでイベントハンドラー、On*
オーバーライド、およびオーバーライドを試みましたが、どこにもイベントWndProc
を受信していないようです。このバグレポートによると、「コントロール デザイナー」で受け取る必要があります。この場合、それが何を指しているのかわかりません。WM_MOUSEMOVE
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MOUSEMOVE
ドラッグ可能なスプリッターを実装する方法はありますか?
c# - PropertyGrid で Delete キーが押されたときにプロパティの値を設定する
現在、WinForms デザイナーをホストするプロジェクトに取り組んでいます。PropertyGrid
にドロップされたコントロールの操作プロパティを表示するために使用していDesignSurface
ます。
UITypeEditor
カスタム コントロール プロパティの値を変更する を作成しました。
null
でDelete キーが押されたときにプロパティの値をリセットするにはどうすればよいですかPropertyGrid
。
winforms - Inherited Control Visible/Enabled プロパティ値 常に True: PropertyGrid
カスタム WinForms ホスティング環境を作成しました。ツールボックスと PropertyGrid があります。
ツールボックスに表示されるコントロールは、既存の WinForm コントロールから継承されます。
ドロップダウン リスト ソース:
ICustomTypeDescriptor
に表示したくないプロパティを除外するために実装しましたPropertyGrid
。
問題:
クラスから継承されたEnabled
&プロパティの値をシリアル化する際に問題に直面しています。Visible
System.Windows.Forms.Control
WriteProperties メソッド ( BasicDesignerLoader
):
問題 # 1: &プロパティのShouldSerializeValue
メソッドが常に false を返す。Enabled
Visible
問題 2:ShouldSerializeValue
メソッド チェックをスキップしてもGetValue
、PropertyDescriptor
常に return のメソッドをチェックしますTrue
。
現在の回避策: 回避策
として、現在Enabled
&Visible
プロパティを を使用して非表示にし、BrowsableAttribute
他の 2 つのブール型プロパティを作成し、 を使用しDisplayNameAttribute
て表示名をEnable
&に変更しましVisible
た。
しかし、この回避策では、これらのスニペットをすべてのコントロールに書き込む必要があります。
私は何かを見逃していますか、何か間違っていますか?Enabled
&Visible
プロパティが変更されないのはなぜですか?
c# - IDE と同じように、WinForms.Form のビルド済みインスタンスを VB または C# ソースコードにシリアル化します。
古いアプリによって XML ファイルから動的に生成された約 500 の WinForms があります。これらを、デザイナーで編集できる VB または C# コードに自動的に変換したいと考えています。
私はそれを手作業で行うことができますが、それには永遠に時間がかかります...
または、各 XML をロードし、古いアプリの xml-to-winform-builder を呼び出して完全な 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 が弱すぎたのかもしれません)、または誰かが既に行ったことからの短いコード サンプルです。
c# - カスタム デザイナーは、デザイン サーフェイス上のコンポーネントの表示を変更します
注意: この質問に対する可視性を高めるために、C# タグを付けました。C# での回答としては問題ありません。VB .NET に変換できます。私が直面している問題は、.NET Framework の概念にあります。
私は現在、グラフィック デザイナーを作成しており、ユーザーが独自のカスタマイズされたコンポーネントのセットをデザイン サーフェイスに追加し、それらを希望どおりに配置して、テキスト ファイルに保存できるようにしています。
ほとんどの部分で問題なく動作していますが、ユーザーに表示したくないいくつかのプロパティを非表示にするために、カスタム デザイナーを使用しようとしました。
したがって、これはそれほど複雑ではありません。デザイナーを有効にするには、コンポーネント クラス定義で属性として設定する必要があります。
したがって、これもそれほど複雑ではありません。
問題
問題は、デザイン サーフェス上に新しいMyLabel
が作成され、 を設定するDesignerAttribute
と、図のようにサーフェスの下に表示されることです。
そして、これが私が削除したときの結果ですDesignAttribute
:
これは私が実際に表示したいものです。
私の質問
これを機能させるために、ここで何が欠けていますか?