我正在努力测试我的wpf应用程序,其中我有一个带有TextBoxes的窗口,其中包含来自Application.Resources的自定义样式
该样式实现了一个占位符,因为它干扰了tabbing(它集中了占位符而不是TB内容),我不得不添加一些IsTabStop代码。
我在调试时以及在Win7上发布exe文件时工作得非常好,但是标签在Win10上不起作用,它只是忽略了TextBoxes而只是忽略了其他不受控制的控件实施这种风格。
任何帮助都会很棒!
以下是样式代码:
<Style x:Key="placeHolderNoline" TargetType="{x:Type TextBox}" BasedOn="{StaticResource tb}">
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid>
<TextBox Text="{Binding Path=Text,
RelativeSource={RelativeSource TemplatedParent},
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
x:Name="textSource"
Background="Transparent"
Panel.ZIndex="2"
BorderThickness="0,0,0,0"/>
<TextBox Text="{TemplateBinding Tag}" Background="{TemplateBinding Background}" Panel.ZIndex="1" BorderThickness="0" IsTabStop="False">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="Transparent"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Text, Source={x:Reference textSource}}" Value="">
<Setter Property="Foreground" Value="LightGray"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
编辑:tb style:
<Style TargetType="TextBox" x:Key="tb">
<Setter Property="Foreground" Value="WhiteSmoke"/>
<Setter Property="Background" Value="#33FFFFFF"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
答案 0 :(得分:1)
package1
的{{1}}不应包含另外两个.post { border-bottom: 2px solid #dbdbdb !important; }
元素。
试试这种风格:
ControlTemplate