728x90
반응형
728x170
■ TextBox 클래스에서 입력한 텍스트가 없는 경우 배경 이미지를 보여주는 방법을 보여준다.
▶ MainWindow.xaml
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800"
Height="600"
Title="TextBox 클래스 : 입력한 텍스트가 없는 경우 배경 이미지 보여주기"
FontFamily="나눔고딕코딩"
FontSize="16">
<Grid>
<TextBox Name="textBox"
Width="200"
Height="25"
VerticalContentAlignment="Center">
<TextBox.Background>
<ImageBrush
Stretch="None"
AlignmentX="Left"
ImageSource="IMAGE/background.gif" />
</TextBox.Background>
</TextBox>
</Grid>
</Window>
▶ MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
this.textBox.TextChanged += textBox_TextChanged;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 텍스트 박스 텍스트 변경시 처리하기 - textBox_TextChanged(sender, e)
/// <summary>
/// 텍스트 박스 텍스트 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
if(this.textBox.Text == string.Empty)
{
Uri uri = GetResourceURI(null, "IMAGE/background.gif");
ImageBrush imageBrush = new ImageBrush();
imageBrush.Stretch = Stretch.None;
imageBrush.AlignmentX = AlignmentX.Left;
imageBrush.ImageSource = new BitmapImage(uri);
this.textBox.Background = imageBrush;
}
else
{
this.textBox.Background = null;
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 리소스 URI 구하기 - GetResourceURI(assemblyName, resourcePath)
/// <summary>
/// 리소스 URI 구하기
/// </summary>
/// <param name="assemblyName">어셈블리명</param>
/// <param name="resourcePath">리소스 경로</param>
/// <returns>리소스 URI</returns>
private Uri GetResourceURI(string assemblyName, string resourcePath)
{
if(string.IsNullOrEmpty(assemblyName))
{
return new Uri(string.Format("pack://application:,,,/{0}", resourcePath));
}
else
{
return new Uri(string.Format("pack://application:,,,/{0};component/{1}", assemblyName, resourcePath));
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] TextBlock 엘리먼트 : TextEffects 속성 사용하기 (0) | 2020.08.28 |
---|---|
[C#/WPF] MenuItem 엘리먼트 : StaysOpenOnClick 속성을 사용해 클릭시 메뉴 오픈 상태 유지하기 (0) | 2020.08.28 |
[C#/WPF] TextBlock 클래스 : TextDecorations 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] TextBlock 엘리먼트 : TextDecorations 속성 사용하기 (0) | 2020.08.28 |
[C#/WPF] RichTextBox 클래스 : SelectionChanged 이벤트를 사용해 선택 영역 서식 설정하기 (0) | 2020.08.28 |
[C#/WPF] ControlTemplate 엘리먼트 : Button 엘리먼트 정의하기 (0) | 2020.08.28 |
[C#/WPF] LinearGradientBrush 엘리먼트 : 글래스 효과 브러시 만들기 (0) | 2020.08.28 |
[C#/WPF] DrawingBrush 엘리먼트 : GeometryDrawing 객체를 사용해 격자 배경 브러시 만들기 (0) | 2020.08.28 |
[C#/WPF] TextBox 클래스 : CharacterCasing 속성 사용하기 (0) | 2020.08.27 |
[C#/WPF] TextBox 클래스 사용하기 (0) | 2020.08.27 |
댓글을 달아 주세요