0

プログラムに次の XAML があります

 <Border x:Name="topCornerBorder" CornerRadius="10" Height="auto" Width="auto" Background="White">
        <Grid x:Name="topCorner" Grid.Row="0" Grid.Column="0" Background="White" Margin="10,10,10,10">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="190*"/>
            <ColumnDefinition Width="30*"/>
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="270*"/>
            <RowDefinition Height="60*"/>
        </Grid.RowDefinitions>

     <StackPanel x:Name="StackPanel" Orientation="Vertical" Grid.Row="0" Grid.Column="1" >
        <Canvas x:Name="textBlockCanvas1">
        </Canvas>
     </StackPanel>

        <Canvas Grid.Row="1" Grid.Column="0" >
            <sdk:DataGrid x:Name="dataGrid" Grid.Row="1" Grid.Column="0" Height="50" Width="300" Canvas.Top="15" Canvas.Left="100" Visibility="Collapsed" AutoGenerateColumns="False" ColumnWidth="*" RowBackground="Aqua" 
                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" CanUserResizeColumns="false" CanUserSortColumns="False" IsReadOnly="True"  BorderThickness="3"
                         CanUserReorderColumns="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">

                <sdk:DataGrid.Columns>

                    <!--Column stuff here not important for this question..-->

                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
        </Canvas>    
    </Grid>  

そして、次のようにして遷移を設定しようとしました:

  <telerik:RadTransitionControl Name="radTransitionControl" Duration="00:00:01" Content="{Binding topCornerBorder}" >
        <telerik:RadTransitionControl.Transition >
            <telerik:SlideAndZoomTransition/>
        </telerik:RadTransitionControl.Transition>
    </telerik:RadTransitionControl>   

しかし、何も起こっていません。また、C# コード ビハインドで次のことも試しました。

radTransitionControl.Content = this.topCornerBorder;

ただし、これにより、「値が期待される範囲内にありません」というエラーが発生します。

トランジション コンテンツ プロパティを残りの UI 要素を囲む境界線に正しく設定するにはどうすればよいですか?

4

2 に答える 2

1

トランジション コントロールの使い方が間違っているようです。

コントロールは、コンテンツが変更されたときにアニメーションをトリガーする単なるコンテンツ コントロールです。

通常、ビジュアルを個々のユーザー コントロールに分割し、適切なタイミングでトランジション コントロールのコンテンツを設定します。


最も単純な例では、2 つの UserControls (View1.xaml と View2.xaml) があるとします。設定するコードから

radTransitionControl.Content = new View1(); 

次に、設定します

radTransitionControl.Content = new View2();

2 番目の set 操作では、遷移が発生することが予想されます。


遷移コントロールがロードされる前にセッターが呼び出された場合、遷移は発生しないことに注意してください。

また、プロパティではなく要素であるContent="{Binding topCornerBorder}ため、これは機能しないことに注意してください。topCornerBorder

Content="{Binding ElementName=topCornerBorder}

構文的には正しいですが、exceptiontopCornerBorder が既にビジュアル ツリーの一部であるため、おそらく結果は になります。

于 2013-02-23T09:25:24.340 に答える
0

さて、次のようにして、境界線 (およびその内部の他のすべて) に遷移を適用することができました。

radTransitionControl.PrepareAnimation();

それが正しい方法かどうかはわかりませんが、これまでのところ機能しています。

于 2013-02-22T23:13:10.823 に答える