The following example demonstrates that how to set background image to a textbox in wpf application.
<Window x:Class=”Window1″
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Title=”Window1″ Height=”300″ Width=”500″>
<TextBox Height=”30″ Width=”237″ MaxLength=”100″
Name=”tbMultiLine” >
<TextBox.Background>
<ImageBrush ImageSource=”E:\AuthorCode\Images\s.gif” AlignmentX=”Left” Stretch=”None” />
</TextBox.Background>
</TextBox>
</Window>
For this we use imagesource property.
Now if we want to add some more feature in this textbox that if user enter some text in the that textbox then back groud image should be remove otherwise background image will be display(see picture 1 and picture2)
( Picture 1 )
(picture 2)
Following code are for doing this:
VB.net Code
Private Sub tbMultiLine_TextChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles tbMultiLine.TextChanged
If tbMultiLine.Text = “” Then
‘ Create an ImageBrush.
Dim _ImgBrush As New ImageBrush()
_ImgBrush.ImageSource = New BitmapImage(New Uri(“E:\AuthorCode\Images\s.gif”))
_ImgBrush.AlignmentX = AlignmentX.Left
_ImgBrush.Stretch = Stretch.None
tbMultiLine.Background = _ImgBrush
Else
tbMultiLine.Background = Nothing
End If
End Sub
C# Code
private void tbMultiLine_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
if (string.IsNullOrEmpty(tbMultiLine.Text)) {
// Create an ImageBrush.
ImageBrush _ImgBrush = new ImageBrush();
_ImgBrush.ImageSource = new BitmapImage(new Uri(“E:\\AuthorCode\\Images\\s.gif”));
_ImgBrush.AlignmentX = AlignmentX.Left;
_ImgBrush.Stretch = Stretch.None;
tbMultiLine.Background = _ImgBrush;
} else {
tbMultiLine.Background = null;
}
}
Thank you!
It’s exactly what I’m looking for.
MS Visual Studio 2010 WPF designer do not show advanced points for Image object as an background (like AlignmentX)