No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Placeholder text is text shown as a hint to the | Placeholder text is the text shown as a hint to the User while the control is empty. As soon as the User enters a value, the placeholder text is not shown. | ||
[[File:Input control with placeholder.png|none|thumb]] | [[File:Input control with placeholder.png|none|thumb]] | ||
The old way was a [[TaggedValues|taggedvalue]] "Placeholder" along with the desired text to show "Enter a search string..." - this | The old way was a [[TaggedValues|taggedvalue]] "Placeholder" along with the desired text to show "Enter a search string..." - this is deprecated. | ||
The new way is to name an additional column with postfix _Placeholder in its name. The result of the expression will be used as a placeholder text. | The new way is to name an additional column with postfix _Placeholder in its name. The result of the expression will be used as a placeholder text. | ||
This has been available in Turnkey since early 2022. | |||
In WPF, you | In WPF, you need to add code, since the out-of-the-box controls of WPF do not support placeholder texts. | ||
If you use the excellent MaterialDesign ([http://materialdesigninxaml.net/ MaterialDesignThemes by James Willock)] package, this code will get the effect: | If you use the excellent MaterialDesign ([http://materialdesigninxaml.net/ MaterialDesignThemes by James Willock)] package, this code will get the effect: |
Revision as of 08:33, 15 June 2023
Placeholder text is the text shown as a hint to the User while the control is empty. As soon as the User enters a value, the placeholder text is not shown.
The old way was a taggedvalue "Placeholder" along with the desired text to show "Enter a search string..." - this is deprecated.
The new way is to name an additional column with postfix _Placeholder in its name. The result of the expression will be used as a placeholder text.
This has been available in Turnkey since early 2022.
In WPF, you need to add code, since the out-of-the-box controls of WPF do not support placeholder texts.
If you use the excellent MaterialDesign (MaterialDesignThemes by James Willock) package, this code will get the effect:
_wecpof = new WECPOFTabBased(); ... _wecpof.OnAddWindow += (s, e) => { e.Win.ViewModelUC.OnViewModelColumnPlacementDone += (s2, e2) => { if (e2.Ctrl is System.Windows.Controls.TextBox || e2.Ctrl is System.Windows.Controls.ComboBox || e2.Ctrl is System.Windows.Controls.DatePicker) { var val = e2.Vcol.TaggedValueLocalAndModelInfo("Placeholder"); if (!string.IsNullOrEmpty(val)) MaterialDesignThemes.Wpf.HintAssist.SetHint(e2.Ctrl, val); var dataForPlaceholder = e2.Vcol.ViewModelClass.ColumnFromName(e2.Vcol.RuntimeName + "_Placeholder"); if (dataForPlaceholder != null) { if (e2.Ctrl is FrameworkElement) { var b = new System.Windows.Data.Binding(dataForPlaceholder.RuntimeName) { Source = e2.Vcol.ViewModelClass.BindingSource, Mode = System.Windows.Data.BindingMode.OneWay /*, Converter = new Eco.Xaml.PassthroughDebugConverter() */ }; (e2.Ctrl as FrameworkElement).SetBinding(MaterialDesignThemes.Wpf.HintAssist.HintProperty, b); } } } };