私は、ある時点でそのフィールドの1つだけが見えるアニメーションのフィルムストリップを用意しようとしています。カメラのフィルムストリップのように、現在1つのフィルムフィールドだけがレンズの下に置かれ、照明される準備ができています。私は別のグリッドを持つグリッドとしてそれを達成しようとします。下のコードでは、 "film strip"はpageContainerと呼ばれています。コードの背後で、私はpageContainerグリッドのMarginプロパティを変更しているアニメーションを行います。私が望むように、pageContainerは完全に動作します。左または右に滑っています。例:ページ番号を表示する。 2マージンは(0,0,0,0)の代わりに(-270,0,0,0)に設定されます。これにより、pageContainerが左に移動し、最初のフィールドの代わりに2番目のフィールドだけが表示されます。Marginプロパティをバインドできませんか?
しかし、UI全体のサイズ変更を開始すると、このメカニズムは機能しなくなり、ユーザーは現在のページだけでなく、2つのページ(フィールド)の境界線を確認することができます。ブレークポイントを私のpageWidthConverterに置くと、UI全体のサイズを変更するときに常にヒットします。私が別のブレークポイントをpageMarginConverterに置くと、サイズ変更中にヒットすることはありません。どうして? MarginプロパティをBackgroundRectangle ActualWidthに依存させたいのと同じように、Widthプロパティでそれを作っています。しかし、それは動作しません。ウィンドウのサイズを変更するときにWidthが動的に設定されるのはなぜですか?Marginは???
PS:マージンを使用する代わりに、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> ...
こんにちはコリン、魅力的な作品;)多くの感謝!!!そうです、Canvas.Leftはよりよいアプローチです。私はそれに切り替え、私はCurrentFieldNumberと呼ばれる新しいカスタムプロパティを作成し、私はMultiBindingを使用しました。私の元の問題の詳細を説明するには:私のアニメーションはバインディングを上書きしました! [ここで説明しました](http://stackoverflow.com/questions/598139/oneway-binding-stops-working-after-the-target-manually-updated)だから、私は新しいCurrentFieldNumber上でアニメーションを実行させ、 :)あなたのきちんとした例をもう一度ありがとう!ハンス – Hans