带图像的WPF文本框

带图像的WPF文本框,wpf,image,xaml,textbox,passwordbox,Wpf,Image,Xaml,Textbox,Passwordbox,我正在做一个WPF登录界面。在我的登录面板中,我有一个登录文本框和一个密码框。如下图所示,登录文本框中有一个小小的人类徽标,密码框中有一个锁。我将图像设置到文本框背景中,然后当我尝试在登录框中插入一些单词时,这些单词将覆盖人类徽标(图像B)。有什么建议可以纠正吗 我的XAML: <TextBox Width="380" Height="25" HorizontalAlignment="Center" Foreground="WhiteSmoke" BorderBrush="Transp

我正在做一个WPF登录界面。在我的登录面板中,我有一个登录
文本框
和一个
密码框
。如下图所示,登录文本框中有一个小小的人类徽标,密码框中有一个锁。我将图像设置到文本框背景中,然后当我尝试在登录框中插入一些单词时,这些单词将覆盖人类徽标(图像B)。有什么建议可以纠正吗

我的XAML:

 <TextBox Width="380" Height="25" HorizontalAlignment="Center"  Foreground="WhiteSmoke" BorderBrush="Transparent" >
     <TextBox.Background>
       <ImageBrush ImageSource="/icon/user_login.png" AlignmentX="Left" Stretch="None"></ImageBrush>
     </TextBox.Background>
 </TextBox>

图A:

图B:


我的建议是用
DockPanel
替换每个
文本框的
。其中最左边的项目是
图像
,最右边的项目是
文本框
。然后分别将图像设置为User和Lock。然后将
文本框
图像
的背景设置为透明。然后,您可以在
DockPanel
上设置所需的任何样式

编辑1-从工作示例复制粘贴

代码:

<DockPanel>
    <Button BorderThickness="0" DockPanel.Dock="Left" HorizontalAlignment="Right" Height="28" Width="23">
         <DynamicResource ResourceKey="SearchBar"/>
    </Button> 'This is a button, because I have a custom Style which I am using which makes all the borders go away. And also because I use it to clear the field.
    <TextBox Text="Search..." FontSize="16" HorizontalAlignment="Stretch" Background="Transparent"/>
</DockPanel>

“这是一个按钮,因为我有一个自定义样式,我正在使用它使所有的边框消失。也因为我用它来清理场地。
图片:

通过不在第二项上设置
DockPanel.Dock
属性,我告诉它要跨越
DockPanel
的其余部分。如有任何其他疑问,请告诉我。如果你复制粘贴上面的内容,它可能看起来不一样,因为我删掉了不相关的部分。


 <DockPanel Grid.Row="1" Margin="65,24,71,11" HorizontalAlignment="Stretch">
                            <Image Source="/SDPI;component/Image/Profile.png"/>
                            <toolkit:WatermarkTextBox Grid.Row="1" FontSize="16">
                                <toolkit:WatermarkTextBox.Watermark>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="Username" FontSize="15" Margin="4,0,0,0" />
                                    </StackPanel>
                                </toolkit:WatermarkTextBox.Watermark>
                            </toolkit:WatermarkTextBox>
                        </DockPanel>

WatermarkTextBox来自扩展的WPF工具包™ 社区版: