WPF TextBox BorderBrush样式与无样式

时间:2018-02-08 05:38:04

标签: wpf xaml

为什么使用Style时TextBox周围会出现边框,而不使用Style?有没有办法使用Style设置它,所以没有边框出现,就像在“Phone”Grid / TextBox中一样?见下文:

enter image description here

WINDOW XAML

    <!-- City, State, Zip -->
    <Grid Grid.Column="0" Grid.Row="2" Background="White" Margin="50,2,25,2">
        <Viewbox>
            <TextBox Style="{Binding StandardTextBox1}" Text="{Binding CityStateZip}"/>
        </Viewbox>
    </Grid>

    <!-- Phone -->
    <Grid Grid.Column="0" Grid.Row="3" Background="White" Margin="50,2,25,2">
        <Viewbox>
            <TextBox
                 Background="Transparent"
                 BorderBrush="Transparent"
                 Text="{Binding FacilityPhoneMain}"
                 TextAlignment="Center"
                 FontSize="14"
                 />
        </Viewbox>
    </Grid>

STYLE XAML

<!-- Standard TextBox 1 -->
<Style TargetType="TextBox" x:Key="StandardTextBox1">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="TextAlignment" Value="Center"/>
    <Setter Property="FontSize" Value="14"/>
</Style>

1 个答案:

答案 0 :(得分:0)

您可以修改样式中BorderThickness的{​​{1}}属性以删除边框。

至于为什么边框在Style中没有受到影响,我有一种预感,这是由于依赖属性优先。

动画的优先级高于属性设置者。由于默认的WPF文本框模板具有影响TextBox属性的动画,因此未应用设置器。

This link has some relevant information

引用:“动画值始终优先于本地值,设置器和触发器”