0
체크 박스를 통해 변환을 활성화하고 싶습니다.xaml에서 바인딩을 통해 변환을 켜고 끌 수 있습니까?
내 샘플에는 레이블의 텍스트를 x 또는 y 방향으로 각각 바꿔야하는 두 개의 확인란이 있습니다.
코드 없이도 가능합니까? 당신은 Converter 또는 MultiConverter를 사용해야 할 것
<Window x:Class="WpfVideoTest.InversionTestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="InversionTestWindow" Height="300" Width="300">
<DockPanel>
<CheckBox DockPanel.Dock="Bottom" IsChecked="{Binding InvertX}">Invert X</CheckBox>
<CheckBox DockPanel.Dock="Bottom" IsChecked="{Binding InvertY}">Invert Y</CheckBox>
<Label Content="Text to invert" FontSize="40" x:Name="TextToInvert">
<Label.RenderTransform>
<TransformGroup>
<!-- transformations to swap in x direction -->
<ScaleTransform ScaleX="-1" />
<TranslateTransform X="{Binding ActualWidth, ElementName=TextToInvert}" />
<!-- transformations to swap in y direction -->
<ScaleTransform ScaleY="-1" />
<TranslateTransform Y="{Binding ActualHeight, ElementName=TextToInvert}" />
</TransformGroup>
</Label.RenderTransform>
</Label>
</DockPanel>
"System.Windows.Data 오류 : 5 = BindingExpression에 의해 생성 된 값이 대상 속성에 유효하지 않습니다.; 값 = '1'MultiBindingExpression : 대상 요소가 'ScaleTransform'(HashCode = 43184669)이고 대상 속성이 'ScaleX'(유형 'Double')입니다. . 1.0도 작동하지 않습니다. 그렇다면이 변환기에 두 번째 및 세 번째 바인딩에 대해 올바른 이중 값을 부여하려면 어떻게해야합니까? – MTR
신경 쓰지 마라, 나는 그것을 발견했다. double에 StaticResource를 사용하면 도움이됩니다. 어쨌든 다른 이유로 (바인딩의 부정확 한 업데이트) 나는 InvertX와 InvertY에 따른 완벽한 변환을 제공하는 변환기로 끝났습니다. – MTR
예, 숫자에 대한 정적 리소스를 갖도록 응답을 편집합니다. 그 점을 지적 해 주셔서 감사합니다. – dtm