WPF MVVM으로 View에 TextBlock을 Model에서 글자 색을 변경하기 위해서 Binding을 해서 사용할 수 있다.
TextBlock의 Foreground는 Color가 아니라 Brush를 사용한다.
아래 예제는 CheckBox를 값이 변경 될 때 TextBlock의 Text의 내용과 Color가 변경 되게 하는 예제이다.
<CheckBox IsChecked="{Binding bChecked}" HorizontalAlignment="Center">Change Text Color</CheckBox>
<TextBlock Text="{Binding checkStatus}" HorizontalAlignment="Center" Foreground="{Binding checkBrush}"/>
위와 같이 CheckBox를 만들어 bChecked = True이면 아래 TextBox의 checkStatus의 글자와 색상을 변경하도록 하려고 한다.
public string checkStatus { get; set; } = "Selected";
public System.Windows.Media.Brush checkBrush { get; set; }
= System.Windows.Media.Brushes.Green;
private bool _bChecked = true;
public bool bChecked
{
get
{
return _bChecked;
}
set
{
_bChecked = value;
if (_bChecked)
{
checkStatus = "Selected";
checkBrush = System.Windows.Media.Brushes.Green;
}
else
{
checkStatus = "Not Selected";
checkBrush = System.Windows.Media.Brushes.Gray;
}
}
}
기본 값으로 CheckBox는 선택되어져 있고 Selected 글자가 녹색으로 표시가된다.
Check 박스를 클릭해서 선택 해제를 하면 Not Seleted로 변경되고 회색으로 표시가 된다.
'WPF' 카테고리의 다른 글
WPF MVVM Window Close Action 처리 (0) | 2023.06.15 |
---|---|
C# UI Thread 에러 발생할 경우 (0) | 2023.02.13 |
WinForm안에 있는 WFP 창에서 owner를 지정하는 방법 (0) | 2023.02.08 |
Telerik RadRibbonView Example (리본바 메뉴 예제) (0) | 2022.01.19 |
Telerik Menu 추가 (0) | 2021.12.21 |