문제

Silverlight 2 베타 2에서 렌더링 변환의 ScaleX 및 ScaleY를 데이터 바인딩 할 수 있는지 아는 사람이 있습니까?바인딩 변환은 WPF에서 가능하지만 XAML을 통해 Silverlight에서 바인딩을 설정할 때 오류가 발생합니다.코드를 통해 가능할까요? 라코 디스

ScaleTransform 요소의 ScaleX와 ScaleY를 바인딩하고 싶습니다.

데이터 컨텍스트에서 이중 속성에 대해 바인딩하려고하면 런타임 오류가 발생합니다. 라코 디스

내 바인딩은 다음과 같습니다. 라코 디스

바인딩 경로가 올바른지 세 번 확인했습니다. 동일한 값에 대해 슬라이드 바를 바인딩하고 있으며 잘 작동합니다 ...

시정은 double 유형이며 0.0에서 30.0 사이의 숫자입니다.이 숫자를 0.5와 1로 축소하는 값 변환기가 있습니다. 물의 투명도에 따라 물고기의 크기를 조정하고 싶습니다.그래서 제가 바인딩하는 타입의 문제라고 생각하지 않습니다 ...

도움이 되었습니까?

해결책

ScaleTransform에는 데이터 컨텍스트가 없으므로 바인딩이 SelectedDive.Visibility를 찾고있을 가능성이 높으며 자체가 아니라 찾을 수 없습니다.Silverlight xaml 및 데이터 바인딩에는 WPF와 다른 많은 것이 있습니다 ...

어쨌든이 문제를 해결하려면 코드에서 바인딩을 설정 **하거나 데이터 개체의 PropertyChanged 이벤트를 수동으로 수신하고 Scale in 코드를 설정하는 것이 좋습니다.

스케일 변경을위한 애니메이션 / 스토리 보드를 만들고 싶다면 후자를 선택하겠습니다.

** 확인해야하는데 바인딩하지 못할 수도 있습니다.RenderTransform이 애니메이션의 일부가 아닌 경우 매트릭스 변환으로 바뀌고 모든 베팅이 꺼진 것을 기억합니다.

다른 팁

런타임 오류인가요 아니면 컴파일 타임인가요, Jonas? 문서 , ScaleX 살펴보기및 ScaleY는 종속성 속성이므로 작성할 수 있어야합니다. 라코 디스

... 여기서 Foo와 Bar는 적절한 유형입니다.

편집 : 물론 WPF 문서입니다.Silverlight의 종속성 속성이 아닌 ScaleX 및 ScaleY를 표준 속성으로 변경했을 가능성이 있습니다.발생한 오류에 대해 더 듣고 싶습니다.

아, 문제가있는 것 같습니다.Visibility (SelectedDive.Visibility) 유형의 속성을 Double (ScaleTransform.ScaleX) 유형의 속성에 바인딩하려고합니다.WPF / Silverlight는이 두 유형간에 변환 할 수 없습니다.

무엇을 성취하려고하십니까?XAML로 도와 드릴 수 있습니다."SelectedDive"란 무엇이며 가시성이 변경되면 어떻게 하시겠습니까?

죄송합니다. 더 많은 정보를 포함하여 질문을 수정했다는 사실을 몰랐습니다.

좋습니다. Visibility는 Double 유형이므로 바인딩은 이와 관련하여 작동해야합니다.

해결 방법으로 ScaleX 및 ScaleY 값을 SelectedDive.Visibility가 바인딩 된 슬라이더 컨트롤에 직접 바인딩 할 수 있습니까?다음과 같은 것 : 라코 디스

그게 효과가 있다면 적어도 당신이 갈 것입니다.

편집 : 아, Silverlight가 바인딩에서 ElementName 구문을 지원하지 않아 작동하지 않을 수 있다는 것을 읽은 적이 있습니다.

예, 포함 된 렌더링 변환이 적용되는 객체에서 DataContext를 상속하지 않을 수 있습니다.DataContext를 강제 할 수 있습니까?예를 들어, 변환에 이름을 지정하십시오. 라코 디스

... 그리고 코드 숨김에서 : 라코 디스

... 스케일러가 DataContext를 Image와 확실히 공유하도록합니다.

좋아, 이미지 자체가 DataContext를 제대로 선택하고 있습니까?

다음을 추가해보세요. 라코 디스

컴파일되고 실행되면 이미지 위로 마우스를 가져가 올바른 값이 표시되는지 확인합니다.

XAML을 통해이 문제를 해결하고 싶었지만 Brian의 제안이 갈 길이었습니다.저는 Matt의 제안을 사용하여 스케일 변환에 이름을 부여하여 코드에서 액세스 할 수 있도록했습니다.그런 다음 슬라이더의 값 변경 이벤트를 연결하고 ScaleX 및 ScaleY 속성을 수동으로 업데이트합니다.가시성 범위 (0-30m)에서 척도 (0.5에서 1)로 변환하기 위해 값 변환기를 유지했습니다.코드는 다음과 같습니다. 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top