带图像的WPF文本框

007*_*070 4 wpf xaml textbox image passwordbox

我正在做一个WPF登录界面.在我的登录面板中,我有一个登录TextBox和一个PasswordBox.如下面第一张图所示,登录文本框中有一个小的人类徽标,密码框中有一个锁.我将图像设置为文本框背景,然后当我尝试将一些单词插入登录框时,单词将覆盖人类徽标(图像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>
Run Code Online (Sandbox Code Playgroud)

图片A:

在此输入图像描述

图B:

在此输入图像描述

Jos*_*one 11

我的建议是你Textbox's用a 替换每一个DockPanel.其中每个都有Image最左边的项目和Textbox最右边的项目.然后将图像分别设置为User和Lock.然后设置的背景的TextboxImages为透明.然后,您可以设置您想要的任何样式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>
Run Code Online (Sandbox Code Playgroud)

图片:

在此输入图像描述

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