我做了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>
图像A:
图像B:
我的建议是,你替换每个Textbox's
一个DockPanel
。 在他们各自有一个Image
作为最左边的项目和一个Textbox
的最右边。 然后分别设置图像,用户和锁定。 然后设置的背景Textbox
和Images
透明。 然后,您可以设置你想要的任何风格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>