这是一个简单的问题,但我无法取得结果。我要在文本框中右边对齐搜索图标,左边的文本是我的文本框样式。
<StackPanel>
<TextBox Style="{StaticResource waterMark}" Margin="0 20 0 0"></TextBox>
</StackPanel>
<Window.Resources>
<SolidColorBrush x:Key="brushWatermarkBackground" Color="White" />
<SolidColorBrush x:Key="brushWatermarkForeground" Color="LightSteelBlue" />
<SolidColorBrush x:Key="brushWatermarkBorder" Color="Indigo" />
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<local:TextInputToVisibilityConverter x:Key="TextInputToVisibilityConverter" />
<Style x:Key="waterMark" TargetType="TextBox">
<Setter Property="BorderBrush" Value="Black"></Setter>
<Setter Property="BorderThickness" Value="1"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<TextBlock Text="enter your text here">
<Image Grid.Row="0" HorizontalAlignment="Right" Source="/Resources/search.ico" Width="10" Height="10"></Image>
<TextBlock.Visibility>
<MultiBinding Converter="{StaticResource TextInputToVisibilityConverter}">
<Binding ElementName="InputText" Path="Text.IsEmpty"></Binding>
<Binding ElementName="InputText" Path="IsFocused"></Binding>
</MultiBinding>
</TextBlock.Visibility>
</TextBlock>
<TextBox x:Name="InputText" Background="Transparent"></TextBox>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>

发布于 2021-12-29 07:23:01
我为文本块和图像添加了一个网格,它现在应该可以工作了:
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid HorizontalAlignment="Stretch">
<Grid.Visibility>
<MultiBinding Converter="{StaticResource TextInputToVisibilityConverter}">
<Binding ElementName="InputText" Path="Text.IsEmty"/>
<Binding ElementName="InputText" Path="IsFocused"/>
</MultiBinding>
</Grid.Visibility>
<TextBlock Text="enter your text here" HorizontalAlignment="Stretch"/>
<Image HorizontalAlignment="Right" Source="/Resources/search.ico" Width="10" Height="10"/>
</Grid>
<TextBox x:Name="InputText" Background="Transparent"/>
</Grid>
</Border>https://stackoverflow.com/questions/70515754
复制相似问题