タグ付けされた質問 「user-controls」

22
「コントロールにコードブロックが含まれているため、コントロールコレクションを変更できません」
スライダーであるシンプルなユーザーコントロールを作成しようとしています。AjaxToolkit SliderExtenderをユーザーコントロールに追加すると、次のようになります(*&$#()@#エラー: Server Error in '/' Application. The Controls collection cannot be modified because the control contains code blocks (i.e. `<% ... %>`). Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it …

2
ユーザーコントロールライブラリとカスタムコントロールライブラリの違いは何ですか?
WPFをすぐに理解できるようになりました。再利用可能なWPFコントロールを作成したいと考えています。 Visual Studioでプロジェクトを作成するためのオプションを見ると、「WPFユーザーコントロールライブラリ」と「WPFカスタムコントロールライブラリ」が表示されます。それらの違いが何であるかは私には不明であり、私のGoogle検索ではまともな説明が何も見つかりませんでした。 それらの違いを理解し、理想的にはどちらを使用するかについていくつかの例を確認したいと思います。


7
WPFユーザーコントロールの破棄
サードパーティによる使用を目的としたカスタムWPFユーザーコントロールを作成しました。私のコントロールには使い捨てのプライベートメンバーがあり、ウィンドウ/アプリケーションを閉じたときに、そのdisposeメソッドが常に呼び出されるようにしたいと思います。ただし、UserControlは使い捨てではありません。IDisposableインターフェイスを実装してUnloadedイベントをサブスクライブしてみましたが、ホストアプリケーションが閉じても呼び出されません。可能であれば、特定のDisposeメソッドを呼び出すことを覚えているコントロールのコンシューマーに依存したくありません。 public partial class MyWpfControl : UserControl { SomeDisposableObject x; // where does this code go? void Somewhere() { if (x != null) { x.Dispose(); x = null; } } } これまでに見つけた唯一の解決策は、ディスパッチャーのShutdownStartedイベントをサブスクライブすることです。これは合理的なアプローチですか? this.Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted;
119 c#  .net  wpf  user-controls  dispose 

12
ユーザーコントロールのちらつきを修正する方法
私のアプリケーションでは、あるコントロールから別のコントロールに常に移動しています。いいえ作成しました。ユーザーコントロールの数が、ナビゲーション中にコントロールがちらつく。更新には1〜2秒かかります。これを設定してみました SetStyle(ControlStyles.OptimizedDoubleBuffer, true); or SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true); しかし、それは役に立ちませんでした...各コントロールは、異なるコントロールを持つ同じ背景画像を持っています。だからそれのための解決策は何 ですか。ありがとう。

9
NAMEDコンテンツでWPF UserControlを作成する方法
同じ方法で常に再利用されるコマンドとロジックがアタッチされたコントロールのセットがあります。すべての一般的なコントロールとロジックを保持するユーザーコントロールを作成することにしました。 ただし、名前を付けることができるコンテンツを保持できるようにするためのコントロールも必要です。私は以下を試しました: <UserControl.ContentTemplate> <DataTemplate> <Button>a reused button</Button> <ContentPresenter Content="{TemplateBinding Content}"/> <Button>a reused button</Button> </DataTemplate> </UserControl.ContentTemplate> ただし、ユーザーコントロール内に配置されたコンテンツには名前を付けることができないようです。たとえば、次のようにコントロールを使用するとします。 <lib:UserControl1> <Button Name="buttonName">content</Button> </lib:UserControl1> 次のエラーが表示されます。 要素「ボタン」に名前属性値「ボタン名」を設定できません。「ボタン」は要素「UserControl1」のスコープの下にあり、別のスコープで定義されたときにすでに名前が登録されていました。 buttonNameを削除するとコンパイルされますが、コンテンツに名前を付ける必要があります。どうすればこれを達成できますか?
100 c#  wpf  xaml  user-controls  controls 

5
WPFユーザーコントロールはどのようにしてWPFユーザーコントロールを継承できますか?
次のWPF UserControlは、機能するDataTypeWholeNumberを呼び出しました。 次に、DataTypeDateTimeやDataTypeEmailなどのUserControlを作成します。 依存関係プロパティの多くはこれらすべてのコントロールで共有されるため、共通のメソッドをBaseDataTypeに入れ、これらの各UserControlがこの基本タイプから継承されるようにします。 しかし、それを行うと、エラーが発生します:部分宣言に異なる基本クラスがない可能性があります。 では、共有機能がすべて基本クラスにあるように、UserControlsで継承を実装するにはどうすればよいですか? using System.Windows; using System.Windows.Controls; namespace TestDependencyProperty827.DataTypes { public partial class DataTypeWholeNumber : BaseDataType { public DataTypeWholeNumber() { InitializeComponent(); DataContext = this; //defaults TheWidth = 200; } public string TheLabel { get { return (string)GetValue(TheLabelProperty); } set { SetValue(TheLabelProperty, value); } } public static readonly …
92 c#  wpf  xaml  user-controls 

12
入れ子になったコントロールを持つDesignMode
コントロールを開発するときに、DesignModeの問題に対する有用な解決策を見つけた人はいますか? 問題は、コントロールをネストすると、DesignModeが最初のレベルでのみ機能することです。2番目以下のレベルのDesignModeは常にFALSEを返します。 標準的なハックは、実行中のプロセスの名前を調べることでした。それが "DevEnv.EXE"の場合は、スタジオでなければならず、DesignModeは本当にTRUEです。 これに関する問題は、ProcessNameを検索することで、レジストリやその他の奇妙な部分を回避し、最終的にユーザーがプロセス名を表示するために必要な権限を持っていない可能性があることです。さらに、この奇妙なルートは非常に遅いです。したがって、シングルトンを使用するために追加のハックを積み重ねる必要があり、プロセス名を要求したときにエラーがスローされた場合は、DesignModeがFALSEであると想定します。 DesignModeを決定するためのすっきりとした方法が適切です。Microsoftにフレームワークの内部で修正してもらうことは、さらに良いでしょう。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.