- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
默认行为是当文本框获得焦点时水印消失。我想让水印内容仅在用户键入第一个字符时消失,然后在清除文本后重新出现。有谁有好的方法来实现这一点吗?
最佳答案
我已经为您调整了默认样式。现在,水印默认显示为(稍暗)默认系统“非事件文本”颜色,并且当水印接收焦点但没有内容时,水印的不透明度会转换为 0.4。一旦有文字,水印就会完全消失。我认为看起来不错:
<LinearGradientBrush x:Key="TextBoxBorder" EndPoint="0,20" MappingMode="Absolute" StartPoint="0,0">
<GradientStop Color="#ABADB3" Offset="0.05" />
<GradientStop Color="#E2E3EA" Offset="0.07" />
<GradientStop Color="#E3E9EF" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="TextBox_MouseOver" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#5794BF" Offset="0.05" />
<GradientStop Color="#B7D5EA" Offset="0.07" />
<GradientStop Color="#C7E2F1" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="TextBox_Focused" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#3D7BAD" Offset="0.05" />
<GradientStop Color="#A4C9E3" Offset="0.07" />
<GradientStop Color="#B7D9ED" Offset="1" />
</LinearGradientBrush>
<SolidColorBrush x:Key="TextBox_DisabledBorder" Color="#ADB2B5" />
<SolidColorBrush x:Key="TextBox_DisabledBackground" Color="#F4F4F4" />
<DataTemplate x:Key="DefaultWatermarkTemplate">
<ContentControl Content="{Binding}" Foreground="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" Focusable="False" />
</DataTemplate>
<Style TargetType="{x:Type extToolkit:WatermarkTextBox}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="3" />
<Setter Property="AllowDrop" Value="true" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="WatermarkTemplate" Value="{StaticResource DefaultWatermarkTemplate}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type extToolkit:WatermarkTextBox}">
<Grid>
<Border x:Name="Border" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="1" Background="{TemplateBinding Background}" />
<Border x:Name="MouseOverVisual" Opacity="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{StaticResource TextBox_MouseOver}" CornerRadius="1" />
<Border x:Name="FocusVisual" Opacity="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{StaticResource TextBox_Focused}" CornerRadius="1" />
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<ContentPresenter x:Name="PART_WatermarkHost"
Content="{TemplateBinding Watermark}"
ContentTemplate="{TemplateBinding WatermarkTemplate}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
IsHitTestVisible="False"
Margin="{TemplateBinding Padding}"
Visibility="Collapsed" />
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Text" Value="" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Visibility" TargetName="PART_WatermarkHost" Value="Visible" />
</MultiTrigger.Setters>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsKeyboardFocusWithin" Value="True" />
<Condition Property="Text" Value="" />
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="PART_WatermarkHost" Storyboard.TargetProperty="Opacity" To=".33" Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="PART_WatermarkHost" Storyboard.TargetProperty="Opacity" Duration="0:0:0.4" />
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
<Trigger Property="Text" Value="">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="PART_WatermarkHost" Storyboard.TargetProperty="Opacity" Duration="0:0:0.4" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="PART_WatermarkHost" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="MouseOverVisual" Property="Opacity" Value="1" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="FocusVisual" Property="Opacity" Value="1" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource TextBox_DisabledBorder}" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource TextBox_DisabledBackground}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在整个应用程序中应用此功能的最简单方法是将该 XAML 放入 App.xaml
中的 Application.Resources
中。请随意调整颜色和不透明度值。
关于wpf xceed工具包水印文本框使水印显示直到第一次输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893977/
谁能告诉我如何在 Xceed DataGridControl 中设置行高?因为设置 DataRow、Row 和 DataCell 的样式没有任何作用。好像是固定在 30 的,我一直找不到任何方法可以更
我有一个使用一些 Xceed 库的应用程序,我们开始在 Windows 7 上部署它。问题出在 WinComboBox 对象上:如果我使用鼠标上的滚轮并向下滚动/“过去”底部列表REALLY FAST
我正在使用 Xceed 数据网格的 Codeplex 版本。 但在以表格形式显示网格时,“Powered by Xceed”文本出现在 datagrid 的右上角。 这个可以去掉吗?如何? 最佳答案
当我更改 Xceed DataGridControl 中的 ItemsSource 时,我的垂直和水平滚动条会立即重置到顶部/左侧。 任何想法如何防止这种情况发生? 最佳答案 我终于修复并弄清楚了为什
我正在寻找 WPF 网格控件的供应商,它可以与 MVVM 很好地配合使用;这允许通过拖动列进行分组。我一直在环顾四周,乍一看,我目前的选择似乎是 Telerik。 如果有人对一个或多个供应商有经验,我
在我的项目中,我有一个 Xceed 数据网格,它绑定(bind)到一个包含许多记录和记录详细信息的数据源。我正在尝试创建一个上下文菜单选项,允许用户在特定列中搜索特定详细信息。虽然我已经成功完成了功能
我正在使用 Xceed MaskedTextBox;
我试图将 Xceed 数据网格中列的可见性绑定(bind)到复选框的 IsChecked 值。 datagrid 的 ReadOnly 属性通过更改复选框 I
我正在使用Xceed 的PropertyGrid 来显示一些元素的特性。元素有不同的类别,例如:常规、高级、其他、特殊。在这里,我发现 Xceed 的属性网格按字母顺序对类别和属性进行排序。我能够使用
我是 WPF 的新手,这可能是个愚蠢的问题,但是......)一个由 xceed wpf propertygrid 可视化的自定义属性类 public class ShopProperties {
我正在尝试取消 xceed datagrid(社区版)网格(http://wpftoolkit.codeplex.com/wikipage?title=DataGrid)中某些列的重新排序/拖放功能
我试图在单击任何属性的高级选项图标时显示“复制”上下文菜单。我需要添加什么才能使它工作? 我希望“复制”上下文项显
我的 View 中有这个名为 NewWindow 的 xceed 颜色选择器: 在名为 NewViewModel 的 View 模型类中绑定(bind)到此属性 public Color? Back
我在 WPF MVVM 应用程序中有一个 Xceed 数据网格,它设置为保存主从记录。选择子行时,我希望 ViewModel 检测到选定的子行。我想最好使用零代码隐藏来做到这一点。我编写了在单击上下文
如何显示 ObservableCollection<> Xceed WPF PropertyGrid 中的自定义对象,其中每个列表项都可以展开以显示自定义对象属性。 (即: ----属性网格-----
我正在为另一个应用程序 Autodesk Revit 开发一个插件,它是作为一个单独的 DLL 类库构建的。我正在尝试使用 Wpf Tool Kit Property grid在我的一个 WPF 窗口
我是使用 Xceed Grid for .NET 的新手。 .NET 有重点,但 Xceed 没有。你能帮我如何得到相同的吗? 最佳答案 您可以执行以下操作: this.gridControl1.Cu
我正在使用 Xceed DateTimePicker 控件。问题在于它的日历大小:当您在控件本身中放大字体时,其弹出日历的大小和字体不会改变。如何更改弹出窗口的大小? 最佳答案 更改DateTimeP
我正在尝试绑定(bind)到 Xceed(Wpf 工具包扩展版)中的图形控件。 然而,the documentation 让我更加困惑...... 它说 The data points of a se
我正在使用扩展 WPF 工具包的(社区版)来显示具有 DateTime 列的记录。
我是一名优秀的程序员,十分优秀!