我有以下UserControl
。这是TextBox
Button
:
<Grid>
<TextBox
Grid.Column="0"
Text="{Binding Text,
RelativeSource={RelativeSource AncestorType=UserControl},
UpdateSourceTrigger=PropertyChanged}"
x:Name="TextBox" />
<Button
Background="{Binding Background, ElementName=TextBox}"
Grid.Column="1"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
HorizontalAlignment="Right"
Visibility="{Binding IsClearButtonVisible,
RelativeSource={RelativeSource AncestorType=UserControl},
Converter={StaticResource BooleanToVisibilityConverter}}"
Command="{Binding ClearTextCommand,
RelativeSource={RelativeSource AncestorType=UserControl}}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" >
<Button.Content>
<Image
Source="{StaticResource Delete2}"
Stretch="None"
RenderOptions.BitmapScalingMode="NearestNeighbor"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
</Button.Content>
</Button>
</Grid>
在Windows 7中它看起来很棒,但在Windows XP中我遇到以下问题:
有关如何解决问题的任何想法?如果我使背景透明,那么按钮没有问题,但文本位于按钮下方,看起来很奇怪。
答案 0 :(得分:6)
使Button
更小和/或添加一个小边距以“缩小”可见背景。
编辑:虽然看了一下(想知道这还没有作为新功能添加)我找到了this article with step-by-step instructions you could give a try。
答案 1 :(得分:3)
我认为你应该在这里使用ControlTemplate
,例如你可以看到Search Text Box Control
和here你可以找到文本框模板
答案 2 :(得分:2)
尝试一下。
<TextBox x:Name="SearchFilter" VerticalAlignment="Center" Width="200"
Text="{Binding SearchItemString}" />
<Button Margin="-20,10,5,0" Width="25" Height="25" Content="X"
Style="{StaticResource TransparentStyle}" />
这是样式。
<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>