반응형

WPF 12

WPF 창이 닫혔는지 어떻게 알 수 있습니까?

WPF 창이 닫혔는지 어떻게 알 수 있습니까? 저는 사용자가 닫거나 자동으로 닫히는 일부 하위 창을 표시하는 응용 프로그램을 만들고 있습니다.몇 가지 예외를 디버깅하는 동안 다음과 같은 메서드를 호출하려고 했습니다.Hide()이미 닫힌 창에서 이 특정 코드 분기는 두 경우 모두에 공통적이었고 나는 이것을 알아차리지 못했습니다. 제 첫 번째 아이디어 중 하나는 부동산을 찾는 것이었습니다.Window창문이 닫혔다는 것을 의미합니다찾을 수 없을 것 같습니다.WinForms에서는 IsDisposed 속성에서 양식이 닫혔음을 나타내는 다소 신뢰할 수 있는 표시기를 찾습니다(대화 상자에서는 안정적으로 작동하지 않지만 대화 상자에서는 작동하지 않습니다).이와 동등한 것은 아무것도 보이지 않습니다.Window다음에 대..

programing 2023.06.06

WPF의 활성 창을 참조하시겠습니까?

WPF의 활성 창을 참조하시겠습니까? WinForms의 ActiveForm 속성과 같은 것을 사용하여 C#에서 WPF 응용 프로그램의 활성 창을 어떻게 참조할 수 있습니까?한 가지 가능한 방법은 응용프로그램에서 열려 있는 창 목록을 스캔하고 창 목록 중 어떤 창이 있는지 확인하는 것입니다.IsActive = true: Application.Current.Windows.OfType().SingleOrDefault(x => x.IsActive); 예를 들어 대화 상자의 소유자와 대화 상자 자체가 활성화될 수 있는 모달 대화 상자가 있는 경우 둘 이상의 활성 창이 있을 수 있는지 확실하지 않습니다.핀보케를 사용하여 이 작업을 수행하는 더 좋은 방법이 있습니다.비아이드 응답이 항상 작동하지는 않습니다(대화 상자..

programing 2023.05.17

표준 WPF 탭 컨트롤에 선택한 탭 변경 이벤트가 있습니까?

표준 WPF 탭 컨트롤에 선택한 탭 변경 이벤트가 있습니까? WPF에서, 언제인지 결정하는 데 사용할 수 있는 이벤트가 있습니까?TabControl의 선택한 탭을 변경하시겠습니까? 사용해 보았습니다.TabControl.SelectionChanged하지만 탭 내에서 아이의 선택이 변경되면 여러 번 해고됩니다.가장 바깥쪽을 분리하려면 이벤트 소스를 확인해야 합니다.TabControl당신은 찾고 있습니다. 나는 이것을 작동시키기 위해 핸들러에 묶었습니다. void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.Source is TabControl) { // do work when tab is changed } } ..

programing 2023.05.12

WPF 텍스트 상자의 다중 회선

WPF 텍스트 상자의 다중 회선 저는 피드백을 보낼 수 있는 앱을 개발하고 있습니다. 기본적으로 나는 만들기 위해 노력하고 있습니다.TextBox설명을 위해, 하지만 나는 WinForms에 익숙합니다.MultiLine=true설정했습니다.MinLines3까지, 거기에 도달할 것이지만, 사용자가 이 블록의 아무 곳이나 입력할 수 있다면 좋을 것입니다. 예를 들어 Enter 키를 누르고 도트 포인트 같은 것을 할 수 있습니다.예: - Item 1 blah - Item 2 blahlb lahbvl d 그러나 현재 텍스트는 모두 한 줄에 머물러 있습니다. - Item 1 blah - Item 2 blahb blahb blah 그러면 이러한 설명은 전송된 전자 메일 본문을 채우는 데 도움이 됩니다.이 문자열을 전..

programing 2023.05.07

'Binding'은 종속성 개체의 종속성 속성에만 설정할 수 있습니다.

'Binding'은 종속성 개체의 종속성 속성에만 설정할 수 있습니다. 다음을 기반으로 하는 사용자 정의 컨트롤TextBox다음 이름의 속성을 만들었습니다.Items다음과 같은 방식으로: public class NewTextBox : TextBox { public ItemCollection Items { get; set; } } XAML에서 사용자 지정 컨트롤을 사용할 때 "Binding'은 Dependency Object의 Dependency Property에만 설정할 수 있습니다." 예외가 발생하기 때문에 속성을 바인딩할 수 없습니다. 이 예외를 해결하려면 어떻게 해야 합니까?참고로 객체 간에 복사하여 붙여넣고 두 번째를 변경하는 것을 잊어버린 경우 이러한 바인딩 오류가 발생한다는 점도 유의할 필요가..

programing 2023.04.27

WPF 드롭섀도

WPF 드롭섀도 를 설정할 때마다Border.Effect컨트롤에 포함된 모든 컨트롤에는 드롭 섀도가 있습니다. 국경의 모든 제어가 아닌 국경에만 그림자를 설정하는 방법이 있을까요? 다음은 내 코드의 간단한 예입니다. 두 가지 선택지가 있습니다. 옵션 1: 효과가 있는 테두리 요소를 테두리/사각형 요소 트리의 형제로서 추가합니다.다음과 같은 경우: 옵션 2: 다음과 같이 사각형을 테두리 요소의 형제 모양으로 배치합니다. 메모: 두 번째 솔루션의 레이아웃을 조정하여 직사각형이 원하는 위치에 오도록 해야 합니다.당신의 질문에 답이 있는 것은 알지만, 가장 간단한 답은 아닌 것 같습니다.질문에 대한 가장 간단한 대답은 그림자를 설정한 컨트롤의 배경을 색칠하는 것입니다.다음과 같은 경우: 그 결과: 흰색 툴바와 ..

programing 2023.04.17

TextBox에서 Enter 키

TextBox에서 Enter 키 WPF 뷰에서는 다음과 같이 Enter 키에 이벤트를 연결하려고 합니다. 이 코드는 작동하며 사용자가 Enter 키를 누르면 EnterKeyCommand가 실행됩니다.단, 문제는 이벤트가 발생했을 때 WPF가 텍스트 상자의 텍스트를 아직 SearchCriteria에 바인딩하지 않았다는 것입니다.그래서 제 이벤트가 시작되면 'SearchCriteria'의 내용이 공백이 됩니다.EnterKey 명령이 실행되었을 때 텍스트 상자의 내용을 가져올 수 있도록 이 코드를 간단하게 변경할 수 있습니까?를 변경해야 합니다.UpdateSourceTrigger에TextBox.Text에 구속력이 있는.PropertyChanged여기 보세요.TextBox를 전달하여 이 작업을 수행할 수 있습니..

programing 2023.04.17

WPF 사이즈를 물리 픽셀로 변환하려면 어떻게 해야 합니까?

WPF 사이즈를 물리 픽셀로 변환하려면 어떻게 해야 합니까? 해상도에 의존하지 않는 WPF의 폭과 높이를 물리 스크린 픽셀로 변환하는 가장 좋은 방법은 무엇입니까? WPF 콘텐츠를 (ElementHost 경유로) WinForms 폼으로 표시하고 사이징 로직을 작성하려고 합니다.OS가 디폴트 96dpi로 동작하고 있을 때는 정상적으로 동작하고 있습니다.다만, OS 가 120 dpi 나 그 외의 해상도로 설정되어 있는 경우는 동작하지 않습니다.WinForms 에 관한 한, Width가 96 이라고 보고되는 WPF 요소는 실제로는 120 픽셀이 되기 때문입니다. 시스템에서 "픽셀/인치" 설정을 찾을 수 없습니다.창문들.시스템 파라미터WinForms와 동등한 (시스템)을 사용할 수 있습니다.창문들.Forms.S..

programing 2023.04.12

WPF 편집 가능한 콤보 박스

WPF 편집 가능한 콤보 박스 콤보박스와 콤보박스가 있습니다.IsEditable 속성은 ComboBox가 TextBox와 드롭다운 목록을 동시에 작동하도록 True로 설정됩니다.그러나 ComboBox가 데이터 바인딩된 경우 사용자 지정 텍스트를 입력해도 데이터 바인딩된 컬렉션에 새 항목이 추가되지 않습니다. 예를 들어, 사용자 목록에 바인딩된 ComboBox에 'Joe'를 입력하면 값 'Joe'가 드롭다운 목록에 자동으로 추가되지 않습니다. 어떻게 대처하면 좋을까요?여기 기본이 있습니다.MVVM원하는 동작을 얻을 수 있는 컴플라이언스 방법: MainWindow.xaml MainWindow.cs public partial class MainWindow : Window, INotifyPropertyChang..

programing 2023.04.12
반응형