WPF中带有图像图标的文本框

Nee*_*ati 5 wpf textbox image

我想在其中创建TextBox图像。这是我尝试过的:

<DockPanel Grid.Row="1" Grid.Column="1" Margin="5" >
    <Image DockPanel.Dock="Left" Source="D:\my_backup\WPF\SALIENT\SALIENT\Images\d2.PNG" Width="20" Height="20"></Image>
        <TextBox  Text="test" FontSize="16" HorizontalAlignment="Stretch" Background="Transparent"                                    
        </TextBox>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

这给了我这样的输出: img

但我想在图像内TextBox这样的img

有人可以帮忙吗?

A.P*_*cat 8

您可以在 Textbox 上设置背景属性,如下所示(我的在右侧对齐):

<TextBox x:Name="txtSearch"
         Text="Search Item...">
    <TextBox.Background>
        <ImageBrush ImageSource="Images/Search.png" Stretch="Uniform" AlignmentX="Right">
            <ImageBrush.Transform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform X="-3"/>                        
                </TransformGroup>
            </ImageBrush.Transform>
        </ImageBrush>
    </TextBox.Background>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

AlignmentX如果您想在左侧看到图像,请设置为左侧。将 设置TranslateTransform.X为正值以添加边距。


Mic*_*ato 6

You could use this sort of implementation. you should probably make a user control out of it.

<Border BorderBrush="Black"
            BorderThickness="2"
            VerticalAlignment="Center"
            CornerRadius="5">

        <StackPanel Margin="5"
                    Orientation="Horizontal">

            <Image Source="C:\SourceOfTheImage\Path\Image.png" 
                   Height="18"/>
            <TextBlock Text="Hello, I am a text block!"
                       Margin="3 0 0 0"/>

        </StackPanel>


    </Border>
Run Code Online (Sandbox Code Playgroud)

It looks like this for me