問題タブ [errortemplate]
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# - Silverlight に似た WPF の検証エラー スタイル
デフォルトではValidation.ErrorTemplate
、WPFの は小さな赤い境界線であり、ToolTip
.
Silverlight 4では、検証エラーはそのままで適切にスタイル設定されています。
Silverlight 4 と WPF で発生する検証エラーの比較を次に示します。
シルバーライト 4
WPF
私の意見では、Silverlight の優れた外観と比較して、WPF バージョンの非常にフラットで退屈な外観に注目してください。
同様の検証スタイル/テンプレートが WPF フレームワークに存在しますか、または上記のSilverlightバージョンのような適切なスタイルの検証テンプレートを作成した人はいますか? それとも、最初から作成する必要がありますか?
試してみたい方は、上記の検証エラーを次のコードで再現できます。SilverlightとWPFの両方で動作します。
MainWindow/MainPage.xaml
MainWindow/MainPage.xaml.cs
c# - Validation.ErrorTemplate での TextBlock の FontSize のバインド
TextBox の単純な Validation.ErrorTemplate を次のように宣言しました。
感嘆符のフォント サイズは TextBox と同じフォント (編集)サイズになることを期待していますが、期待どおりの結果にはならず、常に既定のフォント サイズが取得されます。さらに、 を使って Binding を試みRelativeSource={RelativeSource Mode=TemplatedParent}, Path=FontSize
ましたが、これも解決できません。なぜこのような状況が発生したのですか?感嘆符を TextBox と同じサイズにするにはどうすればよいですか?
wpf - DataGridの複数の行に検証エラーを表示する
私のWPFアプリケーションには、アイテムのObservableCollectionがあります。各アイテムには一意の名前が必要であり、アイテムの名前は文字で始まる必要があります。IDataErrorInfoを実装する基本クラスのデータ検証エラーをチェックします。問題は、ユーザーが既存の名前を入力すると、楕円と「!」が表示されることです。記号は2行ではなく1行にのみ表示されますが、両方に検証エラーがあります。これが私のDataGridのコードです。
前もって感謝します。
wpf - 検証付きの TextBox は、タブの変更時に ErrorTemplate を失います
TabControl のタブにある検証規則を持つ TextBox があります。検証ルールが失敗した場合、デフォルトの ErrorTemplate が正しく表示されます (TextBox の周りの赤い境界線)。
ただし、別のタブに切り替えてから、TextBox のあるタブに戻ると、ErrorTemplate ハイライトが消えます。TextBox に変更がある場合、検証ルールは引き続き呼び出され、false を返しますが、エラーの強調表示は表示されません。
テキストの内容が有効に変更され、再び無効に変更された場合にのみ、ハイライトが復活します。
テキスト コンテンツが無効な場合、別のタブに切り替えて元に戻すと、無効なハイライトが保持されることを望みます。この動作を実現するためのアイデアは大歓迎です。
xaml:
wpf - WPFControlTemplateの高さ
コントロールの入力を検証するための次のスタイルがあります。
エラーが発生した場合、ラベルのエラーメッセージがコントロール(テキストボックスなど)の下に表示され、下のコントロールと重なります。StackPanelのHeight="Auto"を作成しましたが、役に立ちませんでした。各コントロールはグリッドセルにあり、グリッドの行の高さも自動です。私が欠けているものを教えてください。エラーメッセージで下にあるものをプッシュしたい。ありがとう。
c# - ControlTemplate がウィンドウに適用されるとエラー テンプレートが機能しない
App.xaml、MainWindow.xaml、および Person クラスを使用した単純なアプリケーションがあります。テンプレートを指定しないと、ValidateOnDataErrors は完全に機能し、エラーが発生した場合はテキスト ボックスの周りに赤い境界線が表示されます。ただし、MainWindow.xaml の Window タグに「 Template="{StaticResource WindowTemplate}" 」を挿入するとすぐに、フィールドは引き続き検証されますが、赤い境界線は消えます。
App.xaml :
MainWindow.xaml :
Person.cs
よろしくお願いいたします。
c# - WPF エラー テンプレートの境界線にすべてのテキストが表示されない
私の WPF アプリケーションにはいくつかのエラー チェックがあります。エラーメッセージはテキストボックスの横に表示されますが、アプリケーションの右側にテキストボックスがある場合、すべてのエラーテキストが表示されません.
結果:
これは私のエラー テンプレート スタイルです。
すべてのエラー メッセージを表示する方法を教えてください。
ありがとうヤクブ
c# - ErrorTemplate内にツールチップを設定する方法はありますか?
WPFアプリケーションには、一貫した方法でエラーを表示するために使用する共通の制御テンプレートがあります
アプリケーションの他の場所で、コントロールにエラーが表示される可能性がある場合は、ErrorTemplateを次のように設定します。
このエラーテンプレートにツールチップを表示したいのですが、境界線にツールチッププロパティを設定しても、ユーザーが1px幅の境界線上にマウスを置いたときにのみツールチップが表示され、エラーのあるコントロール自体では表示されないため、あまり役に立ちません。 。
ツールチップをスタイルに設定できることは知っていますが、このエラーテンプレートは多くの異なるコントロール(コンボボックスなど)に適用され、これらのコントロールの多くはエラーテンプレートから独立したスタイルも使用します-本当にしたいエラーテンプレートを一般的な方法で任意のコントロールに適用できます。
ErrorTemplateでツールチップを設定する方法はありますか?
c# - バインディング例外ではなくアプリ例外をスローするWPFアプリケーションのFolderBrowserDialog
こんにちは、ユーザーのコンピューターでフォルダーを選択するためにを使用しSystem.Windows.Forms.FolderBrowserDialog
ています。WPF application
選択したフォルダーが に表示されTextBox
、ビュー モデルでも検証されます。
次のシナリオの下に、無効なフォルダーError Template
メッセージを表示しようとしています。TextBox
- フォルダが存在せず、アクセスできない場合。
- ユーザーがシステム フォルダーであるフォルダーを選択した場合。この例では、値を としてハードコーディングしました
@"c:\windows\boot"
。
私が気づいているのは、存在しないフォルダーを入力すると、エラー テンプレートを設定できるバインド例外が発生することです。
しかし、ユーザーがアクセスできないドライブを選択した場合、または unhandle 例外@"c:\windows\boot"
でキャッチされた例外が発生するか、try catch (フォルダーが設定されている場所) がある場合はそこでキャッチされます。App.xaml
どうすればこれを拘束力のある例外として持つことができますか? それを try catch のままにしておくことにする前に、バインド例外としてそれを使用できるかどうかを理解したいと思いました (これにより、クリックが節約されます!)。
コードは次のとおりです。
私は と を持っMainWindow
ていMainWindowViewModel
ます。
コードビハインド
wpf - ErrorTemplate から Validation.Errors にアクセスする
グリッドに BindingGroup があります。
そして、私はグリッド用の ErrorTemplate を持っています:
ControlTemplate から Validation.Errors[0].ErrorContent にアクセスして、Label に表示したいと考えています。出来ますか?手伝っていただけませんか?