5

터치 스크린 인터페이스를 사용하여 조작 할 수 있도록 "터치"모드에서 실행할 수 있어야하는 대형 .Net winforms 프로젝트에 대해 컨설팅을하고 있습니다. 응용 프로그램 아키텍처에는 표준 .Net 양식 및 컨트롤의 글꼴/디스플레이를 확장하기위한 스케일링 논리가 이미 포함되어 있으며 사용자 지정 컨트롤 또한 크기 조절을 처리합니다.큰 글꼴이있는 Windows 대화 상자

문제는 응용 프로그램이 동일한 논리를 사용하여 확장되지 않는 OpenFileDialog 및 SaveFileDialog를 사용한다는 것입니다 (기본적으로 컨트롤 및 양식의 Font 속성 크기를 재귀 적으로 조정 함). 이 대화 상자는 기본적으로 기본 Windows 대화 상자이며 OpenFileDialog 클래스는 표준 .Net 인터페이스를 노출하는 래퍼 클래스입니다.

하나의 솔루션은 이러한 것들을위한 사용자 지정 대화 상자를 구현하는 것이지만 이는 다소 광범위한 작업 일 것입니다. 우리가 정말로하고 싶은 것은 어쨌든 특정 대화 상자의 폰트 크기를 (어쩌면 일부 P/Invoke 윈도우 핸들 매직을 통해) 확장하는 것입니다.

나는 터치 가능 화를위한 한 가지 해결책은 일반적으로 Windows의 글꼴 크기를 조정하는 것이지만,이 아이디어는이 회사에 실제로 적용되지 않는다는 것을 알고 있으며, 앱 자체를 확장하고 나머지는 운영체제.

그렇다면이 대화 상자를 더 큰 글꼴로 확장하는 방법에 대한 경험이나 아이디어가 있습니까? 아니면 우리가 총알을 물고이를 위해 사용자 정의 대화 상자를 만들어야합니까?

+0

[This] (http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx) 문서가 도움이 될 수 있습니다. – ahazzah

+0

기사는 좋지만 나는 이런 식으로 움직이지 않는다. .NET에서 해킹 된 클래스를 해킹하는 것보다는 코드를 다시 작성하고 싶습니다. 다음 버전의 프레임 워크 또는 API 변경으로 인해 코드가 쉽게 손상 될 수 있습니다. 타사 컨트롤을 사용하면 여기에서 많은 도움이됩니다 (유료 또는 무료). 먼저 나무 컨트롤을 검색해 보겠습니다.이 컨트롤은 사용자 정의하기가 어렵습니다. –

+0

[This] (http://www.codeproject.com/KB/dialog/CustomizeFileDialog.aspx) 다른 문서도 도움이 될 수 있습니다.) –

답변

1

내가 터치 가능하게하기위한 하나 개의 솔루션은 일반적으로 윈도우의 글꼴 크기를 조정하는 것이라고 알고 있지만, 그 생각이 정말이 회사와에 잡기되지 않으며, 그들은 오히려 응용 프로그램 자체를 확장하고 떠날 것이다 나머지 OS는 변경되지 않습니다.

당신이 참조하는 대화 상자는 오히려 손길이 닿지 않는 "나머지 OS"의 일부입니다. 제어판에서 글꼴 크기를 늘리거나 (예 : 시스템 전체) 강제로 대화 상자를 사용하거나 직접 대화 상자를 다시 구현하십시오.

적절한 API를 사용하여 별도의 Windows 데스크톱을 만들고 글꼴 크기를 늘린 다음 그 앱을 실행 (예 : 앱에서 해당 데스크톱을 만들고 사용하고 파괴하도록 허용) 할 수 있습니다. 그런 다음 앱과 모든 공통 대화 상자가 크기가 조정됩니다. 앱은 한 화면에 다른 앱과 함께 표시되지 않으며 앱에서 데스크톱을 전환해야합니다 (필자는 생각합니다). 앱이 활성화되면 앱 GUI 외에는 아무 것도 볼 수 없습니다. 시작 버튼 없음, 작업 표시 줄 없음, 너트 없음. 자세한 내용은 http://www.codeproject.com/KB/cs/csdesktopswitching.aspx을 참조하십시오.

+1

게시자가 유일하게 게시 된 사람이기 때문에 대답으로 받아 들일 것입니다. ("직접 대화를 다시 구현 한 것"이 아닌 다른 것을 원했지만 :)) –

-1

가장 적합한 솔루션은 라벨이있는 헤더를 구현하고 양식의 나머지 부분에 폼이 필요한 것을 넣는 것입니다. 이 경우 레이블 글꼴은 원하는 크기로 증가 할 수 있습니다. 이 대화 상자를 구두 취급 할 때, 양식의 .sohwDialog()를 호출하면

관련 문제