반응형

wpf 21

C# WPF에서 내 TabControl의 SelectionChanged 이벤트가 너무 자주 실행되는 이유는 무엇입니까?

C# WPF에서 내 TabControl의 SelectionChanged 이벤트가 너무 자주 실행되는 이유는 무엇입니까? 각 탭에 프레임이 포함된 탭이 있는 GUI가 있습니다.이 프레임 중 하나에 데이터 그리드가 있습니다.사용자가 이 탭을 선택하면 데이터 그리드가 정렬되어야 하므로 TabControl SelectionChanged 이벤트를 사용하여 정렬을 트리거합니다.그러나 이 이벤트는 탭 자체가 변경되지 않은 상태로 유지되더라도 데이터 그리드에서 항목을 선택할 때마다 트리거됩니다. 다양한 이벤트를 시도해 보았습니다.TabItem RequestBring에 대해 GotFocus를 받았습니다.탭 항목에 대한 뷰로 하지만 그들은 모두 이 문제로 고통받는 것처럼 보입니다.무엇이 원인입니까?그TabControl.S..

programing 2023.04.26

WPF 버튼을 ViewModelBase 명령어에 바인드하려면 어떻게 해야 합니까?

WPF 버튼을 ViewModelBase 명령어에 바인드하려면 어떻게 해야 합니까? 나는 전망이 있다.AttributeView모든 종류의 속성이 포함되어 있습니다.또한 버튼을 누르면 기본값이 속성으로 설정됩니다.저도 있어요.ViewModelBase가지고 있는 모든 ViewModel의 기본 클래스인 클래스입니다.문제는 WPF에서 명령어에 바인딩된 버튼을 얻을 수 없다는 것입니다. 시도해 봤지만 아무 소용이 없어요 명령어는 (에서) 정의되어 있습니다.ViewModelBase)는 다음과 같습니다. public CommandBase DataInitialization { get; protected set; } 응용 프로그램 부팅 시 다음 명령어에 대한 새 인스턴스가 생성됩니다. DataInitialization =..

programing 2023.04.21

WPF의 '도움말' 메뉴 항목을 오른쪽 정렬하려면 어떻게 해야 합니까?

WPF의 '도움말' 메뉴 항목을 오른쪽 정렬하려면 어떻게 해야 합니까? XAML 파일에 다음 섹션이 있습니다. 그 결과 다음과 같습니다. +-------------------------------------------+ | File Edit Help | +-------------------------------------------+ | | 필요한 경우 어떻게 해야 합니까?Help오른쪽 메뉴 항목: +-------------------------------------------+ | File Edit Help | +-------------------------------------------+ | | 같은 원리로 이번에는 그리드가 필요 없기 때문에 아이템의 수를 알 필요가 없습니다.도움말을 제외한 모든 ..

programing 2023.04.16

MVVM을 사용한WPF 대화상자 처리

MVVM을 사용한WPF 대화상자 처리 WPF의 MVVM 패턴에서는 대화상자의 처리가 보다 복잡한 조작 중 하나입니다.뷰 모델은 뷰에 대해 아무것도 모르기 때문에 대화 상자 통신은 흥미로울 수 있습니다.내가 폭로할 수 있는 건ICommand보기가 호출할 때 대화 상자가 나타날 수 있습니다. 대화 상자의 결과를 처리하는 좋은 방법을 아는 사람이 있습니까?'와 같은 대화창에 .MessageBox. 이를 위한 방법 중 하나는 뷰 모델에서 대화상자가 필요할 때 뷰가 구독하는 이벤트를 생성하는 것입니다. public event EventHandler RequiresDeleteDialog; 이것은 괜찮지만, 보기에는 코드가 필요하기 때문에 피하고 싶은 것입니다.1990년대 모달 대화 상자를 없애고 대신 오버레이(캔버..

programing 2023.04.16

WPF: 스타일 목록 상자에서 포커스 항목 주위의 점선 테두리 제거

WPF: 스타일 목록 상자에서 포커스 항목 주위의 점선 테두리 제거 커스텀 컨트롤이 있는 가로 리스트 박스가 있어요선택한 항목에 초점을 맞추면 점선 프레임이 표시됩니다.어떻게 없애는지 아는 사람?각 ListBoxItem의 FocusVisualStyle을 null로 설정해야 합니다.스텝이 울리다 1) ListBox용 Item Container Style 작성 .... 2) 해당 스타일을 목록 상자로 설정합니다.

programing 2023.04.11

'UserControl' 유형이 직접 콘텐츠를 지원하지 않습니다.

'UserControl' 유형이 직접 콘텐츠를 지원하지 않습니다. Outlook 2013 및 2016 VSTO Add-in 프로젝트가 있으며 여기에 설명된 대로 WPF 사용자 컨트롤을 사용자 지정 작업 창에 추가하려고 합니다. 문제는 사용자 컨트롤(WPF)을 추가하면 그리드가 있는 WPF 컨트롤이 생성되지만 자동으로 "유형 'UserControl'은 직접 콘텐츠를 지원하지 않습니다"라는 오류가 발생한다는 것입니다. 생성된 WPF: 이전에도 몇 가지 작업을 수행하기 위해 WPF 프로젝트 유형 guid를 .proj 파일에 추가해야 했지만, 이를 추가해도 아무런 차이가 없습니다(실제로 특정 순서로 로드되지 않습니다). 오리지널: {BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04..

programing 2023.04.11

WPF에서 창을 최소화하시겠습니까?

WPF에서 창을 최소화하시겠습니까? 창을 사용할 때 프로그래밍 방식으로 창을 최소화하는 방법WPF를 찾을 수 있을 것 같습니다.특성 크기를 조정하시겠습니까?세트WindowState = WindowState.Minimized;자산을 찾고 있습니다.이것은 의존 속성이며 변경 시 속성이 설정되므로 언제든지 변경 전 크기로 복원할 수 있습니다. 여기 열거를 참조하십시오. myWindow.WindowState = WindowState.Minimized; this.WindowState = WindowState.Minimized; 같은 문제를 안고 있는 분들을 위해: 만약에ShowInTaskbar그럼 false로 설정됩니다.WindowState.Minimized창을 데스크톱 왼쪽 하단에 있는 작은 창 제목 표시줄로 ..

programing 2023.04.11

Relay Command가 필요한 이유

Relay Command가 필요한 이유 최근 WPF에서 많은 프로그래밍을 하고 있습니다만, 이 시점에서는 View와 View Model이 분리되어 있지 않습니다.뭐, 부분적으로는요.텍스트 상자의 텍스트, 레이블의 내용, 데이터그램의 목록 등과 관련된 모든 바인딩은 알림이 있는 일반 속성으로 수행됩니다.Property Changed 이벤트입니다. 버튼 클릭이나 텍스트 변경 처리를 위한 모든 이벤트는 이벤트를 링크함으로써 이루어집니다.이제 명령어를 사용하여 작업을 시작하고 싶더니 http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute이라는 기사를 발견했습니다.MVVM의 셋업 방법에 대한 설명이 있..

programing 2023.04.11

WPF List View 항목을 가로 스크롤 막대처럼 가로로 반복하려면 어떻게 해야 합니까?

WPF List View 항목을 가로 스크롤 막대처럼 가로로 반복하려면 어떻게 해야 합니까? 데이터를 수직으로 반복하는 WPF List View가 있습니다.Windows 탐색기의 슬라이드 쇼 보기와 같이 가로로 반복하는 방법을 알 수 없습니다.현재 List View 정의는 다음과 같습니다. Data Template는 (이것은 중요하지 않다고 생각합니다만) ListView의 ItemsPanel을 수평 스택 패널로 설정합니다.다음과 같이 합니다. 이 작업을 수행하는 더 좋은 방법은 모든 속성이 동일하지만 특히 항목이 많은 목록 상자에서 훨씬 더 성능이 뛰어난 Virtualizing StackPanel을 사용하는 것입니다.이쪽으로 가는 게 더 편할 것 같아서 언급URL : https://stackoverflo..

programing 2023.04.11

UI 스레드에서 작업 계속

UI 스레드에서 작업 계속 작업 계속을 초기 작업이 생성된 스레드에서 실행하도록 지정할 수 있는 '표준' 방법이 있습니까? 현재 아래의 코드를 가지고 있습니다.이것은 동작하고 있습니다만, 디스패처를 추적해, 제2의 액션을 작성하는 것은 불필요한 오버헤드로 생각됩니다. dispatcher = Dispatcher.CurrentDispatcher; Task task = Task.Factory.StartNew(() => { DoLongRunningWork(); }); Task UITask= task.ContinueWith(() => { dispatcher.Invoke(new Action(() => { this.TextBlock1.Text = "Complete"; } }); 의 계속을 호출합니다.TaskSched..

programing 2023.04.11
반응형