반응형

프로그래밍/WPF 52

[WPF] Storyboard 이용하여 Visibility 제어

Open Button과 Close Button이 각자 누를 때마다 서로 반전되어 화면에 보이는 상황이 있다고 하자. 만약 MVVM 패턴에서 이를 제어하려고 한다면 Command를 Binding 하여 특정 변수를 Visivility에 바인딩하여 제어해야 할 것이다. 심지어 Converter를 작성해야한다. 굳이 그럴 필요 없이 Storyboard와 Event Trigger를 이용하여 이를 아래와 같이 제어 할 수 있다. Event Trigger를 등록할 버튼에 이름을 지정해준다. Event Trigger에 등록한 버튼 이름과 트리거에 물릴 이벤트를 연결한다. 트리거가 발생될 때 사용될 Storyboard를 작성한다.

프로그래밍/WPF 2022.03.30

[WPF] canvas 내용을 비트맵 이미지로 저장

canvas에 있는 내용을 그대로 화면으로 캡쳐하여 비트맵 파일로 저장하는 방법이다. 일단 저장을 원하는 Canvas Control에 x:Name을 지정한다. 여기선 그냥 canvas라고 지정하였다. canvas에 그리기 원하는 내용을 넣는다. 아래의 코드를 실행시킨다. RenderTargetBitmap rtb = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96, 96, PixelFormats.Pbgra32); rtb.Render(canvas); using (Stream stream = new FileStream(System.Environment.CurrentDirectory + @"\background.bmp", ..

프로그래밍/WPF 2021.09.09

[WPF] UserControl DependencyProperty 설정과 Binding 방법

자주 쓰이는 UserControl을 만들 때, 해당 컨트롤을 바딩인 속성 설정과 실제 바인딩 방법에 대해 알아본다. Usercontrol xaml cs namespace WintexMonitoring.View { /// /// MaterialCard.xaml에 대한 상호 작용 논리 /// public partial class MaterialCard : UserControl { public string Title { get { return (string)GetValue(TitleValueProperty); } set { SetValue(TitleValueProperty, value); } } public static readonly DependencyProperty TitleValueProperty = D..

프로그래밍/WPF 2021.07.21

[WPF] ItemControl에서 Item Index binding

ItemControl 등에서 각 itemsSource에 있는 파일을 삭제 처리나 수정 처리 할 때, 방법에 따라 다양하지만 해당 ItemTemplate에 추가나 삭제 버튼을 만들어 처리하는게 일반적이다. 이때 해당 ItemsSource의 Index값을 가져와서 처리하는 방법을 알아보자. ViewModel class ConfigViewModel : DialogViewModelBase { private string _address; public string Address { get { return _address; } set { SetProperty(ref _address, value); } } public ObservableCollection IP { get; set; } public DelegateCom..

프로그래밍/WPF 2021.05.11

[WPF] Value Converter

바인딩 처리를 하다보면 값에 따라 화면에 바인딩 되어야하는 값이 달라야 할때가 있다. 예를들어 bool 값을 이용하여 visible처리 할 때나, 퍼센트 값에 따라 폰트 컬러가 달라진다거나 하는 기타 등등의 요소가 존재한다. 이를 위한 Value Converter 사용법은 아래와 같다. ViewModel에 컨버터 클래스를 선언한다. public abstract class BaseOnewayConverter : MarkupExtension, IValueConverter { public BaseOnewayConverter() { } // source to binding target public abstract object Convert(object value, Type targetType, object pa..

프로그래밍/WPF 2021.05.10

[WPF] MVVM에서 IDialogService 사용

mvvm을 사용할 때, Dialog용 Service를 만들어서 사용하는 방법을 기술하겠다. 위의 구조대로 만들 예정이다. 만약 새로운 화면이 필요하다면 커스텀 DialogView를 이용하여 처리하면 된다. IDialogWindow.cs namespace CounterMonitor.Dialogs.Service { public interface IDialogWindow { bool? DialogResult { get; set; } object DataContext { get; set; } bool? ShowDialog(); } } 창을 띄울 화면 생성 DialogWindow.xaml 해당 위의 인터페이스를 상속하자 DialogWindow.xaml.cs using System.Windows; namespace..

프로그래밍/WPF 2021.05.10
반응형