WPF TabStop TextBox不能在Win10上运行

时间:2017-02-21 08:14:44

标签: wpf xaml windows-10 tabstop

我正在努力测试我的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>

1 个答案:

答案 0 :(得分:1)

package1的{​​{1}}不应包含另外两个.post { border-bottom: 2px solid #dbdbdb !important; } 元素。

试试这种风格:

ControlTemplate