WPF Canvas Zoom Focus 오류 원인 ??

CanvasError

Canvas Zoom In/Out 을 Google 검색하여 만들었습니다.
헌데 ZoomScale=ZoomValue 값을 Binding 처리해서 Button Click시 Value값을 바꿔주고 있어요,
하지만 Focus를 잃으면 반응이 없어져 버립니다.
부족한 실력에 도움 요청 드려요

image

2개의 좋아요

혹시 재현할 수 있는 샘플 프로젝트를 올려주실 수 있나요?

2개의 좋아요

null

1개의 좋아요

올려주신 zip 파일 받아서 그대로 실행해 보았는데

일단 작성해주신 코드에서 [Click] 버튼을 눌렀을때 아무 동작이 없는데

문제가 이게 맞나요?

옆에 [FocusLoss] 버튼과는 상관없이 [Click] 버튼은 아무 동작이 없습니다.

[Click] 버튼 Command로 바인딩 된 ZoomValue 값으로 확대/축소 처리가 되는 걸 원하시는 거라면

ZoomRate="{Binding ZoomValue}

부분에 Mode 속성을 부여하시면 됩니다.

ZoomRate="{Binding ZoomValue, Mode=TwoWay}"
1개의 좋아요

아…이부분 이었꾼요…!
특정 컨트롤에 Focus를 뺏기면 안되는 증상이었습니다.
해결되었어요…!
실례가 안된다면 추가로 한가지 더 알고싶은 부분이 있는데,
VisualBrush의 Visibility를 바인딩 하려 하는데 어떻게 하면 좋을까요 ?
VisualBrush는 Container 할당시 Background에 할당하고 있습니다.

1개의 좋아요

Brush는 Visibility 속성이 없습니다.

보이지 않게 처리하는게 목적이라면 ContentPresenter 컨텐츠 대상인 Canvas 자체를 Visibility 바인딩 걸어서 처리 하던지

Canvas 의 Background를 투명으로 처리 하던지 하시면 될 것 같습니다.

2개의 좋아요

격자눈금을 조건적으로 보여지거나, 안보여지게 하려고 하는 의도인데 좋은 방안은 없나보균요…!

1개의 좋아요

캔버스에 Visibility 바인딩 해서

조건에 따라 보였다 안보였다 처리 하면 되는거 아닌가요?

1개의 좋아요

Canvas를 ContentPresenter의 Content로 Binding 하고,
Viewmodel 내에서 Canvas를 동적으로 Add 시켜주고있습니다.
Canvas 동적으로 Background도 할당해주고 있기도 하고, 동적 Binding 방식은 안써봐서 찾아보고있습니다…!

1개의 좋아요

커스텀 컨트롤을 별도로 만들어 처리해 봤습니다.

코드 보시고 참고해서 응용하시면 될 것 같습니다.

[코드 git]

code_check/QnA/WPF/CanvasFocusError at main · tyeom/code_check (github.com)


**[결과]** ![Canvas_Zoom_Out|690x418](upload://1OWXVyQScpAU1at8sh6KsXrbD42.gif)

* 엇 gif 이미지 업로드가 잘 안되네요…? ;;

2개의 좋아요

Canvas_Zoom_Out

4개의 좋아요

정말 우선 감사하다는 말을 먼저 하는게 맞는것 같습니다.
감사합니다 !

최종적으로 제가 원하던 ContentPresenter를 이용한 Canvas를 이어붙이는(?) 처리를 하기위해 노력중 입니다. (Children을 붙였다 뗏다 편하게 하기 위함…? )
예제로 만들어주신 자료는 쉽게 얻을 수 없는 좋은 자료임이 확실하게 느껴지네요.
좀 더 응용 할 수 있는 방안을 찾아서 업데이팅 해보면 될듯 합니다 ! 감사합니다 !

3개의 좋아요