나는 주어진 순간에 오직 하나의 필드 만 볼 수있는 일종의 애니메이션 필름 스트립을 만들려고합니다. 카메라의 필름 스트립과 마찬가지로 - 현재 한 개의 필름 필드 만이 렌즈 아래에 배치되어 있으며 조명이 꺼질 준비가되어 있습니다. 나는 다른 그리드와 그리드로 그것을 달성하려고합니다. 아래의 코드에서 "필름 스트립"을 pageContainer라고합니다. 코드 뒤에 나는 pageContainer 그리드의 Margin 속성을 바꾸는 애니메이션을 만든다. 완벽하게 작동합니다. pageContainer는 원하는대로 왼쪽 또는 오른쪽으로 멋지게 슬라이딩합니다. 예를 들면 다음과 같습니다. 2 여백은 (0,0,0,0) 대신 (-270,0,0,0)으로 설정됩니다. 그러면 pageContainer가 왼쪽으로 이동하고 첫 번째 필드 대신 두 번째 필드 만 표시됩니다.여백 속성을 바인딩 할 수 없습니까?
그러나 UI 전체 크기 조정을 시작하자마자이 메커니즘은 작동을 멈추고 사용자는 현재 페이지가 아닌 두 페이지 (필드) 사이의 경계를 볼 수 있습니다. 내 pageWidthConverter에 중단 점을 넣으면 전체 UI의 크기를 조정할 때 항상 중단됩니다. pageMarginConverter에 다른 중단 점을 넣으면 크기 조정 중에 절대 중단되지 않습니다. 왜? Midth 속성을 BackgroundRectangle ActualWidth에 종속적으로 만들려면 Width 속성을 사용하는 것과 비슷하게 만들고 싶습니다. 하지만 그건 효과가 없습니다. 창 크기를 조정하는 동안 Width가 동적으로 설정되는 이유는 무엇입니까?
추 신 : 여백을 사용하는 대신 TranslateTransform을 사용할 수 있습니다. 나는 시도했지만 성공하지 못했습니다.
아무도 도움을받을 수 있다면 매우 높이 평가 될 것입니다.
건배 한스
... <Grid Grid.Row="3" Grid.Column="1" Margin="0,-4,0,0" ClipToBounds="True">
<Grid x:Name="pageContainer"
Width="{Binding Converter={StaticResource pageWidthConvertor}, ElementName=BackgroundRectangle, Path=ActualWidth}"
Margin="{Binding Converter={StaticResource pageMarginConvertor}, ElementName=BackgroundRectangle, Path=ActualWidth}" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=BackgroundRectangle, Path=ActualWidth}"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="{Binding ElementName=BackgroundRectangle, Path=ActualWidth}"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="{Binding ElementName=BackgroundRectangle, Path=ActualWidth}"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="{Binding ElementName=BackgroundRectangle, Path=ActualWidth}"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions> ...
안녕하세요 콜린, 매력처럼 작동;) 많은 감사합니다! 당신 말이 맞아, 캔버스. 왼발은 더 나은 접근법이야. 필자는 CurrentFieldNumber라는 새로운 사용자 지정 속성을 만들고 MultiBinding을 사용했습니다. 내 원래의 문제에 대해 더 자세히 설명하기 : 제 애니메이션이 바인딩을 덮어 썼습니다! [여기에 설명되어 있습니다] (http://stackoverflow.com/questions/598139/oneway-binding-stops-working-after-the-target-manually-updated) 이제 애니메이션을 새 CurrentFieldNumber로 돌리고 모든 것이 좋습니다. :) 다시 한번 당신의 깔끔한 예를 들어 주셔서 감사합니다! 한스 – Hans