2010-06-18 86 views
1

我使用的是Silverlight 4.0,我有一个简单的网格,其中显示了一些与用户有关的详细信息,例如姓名,电话号码。地址等。 最初,文本框处于只读模式。 当用户点击“更新信息”链接(在同一个网格中)时,文本框变为可编辑。 现在,我从“只读”到“编辑”模式,尝试了一个简单的过渡效果..Silverlight:使用TransitioningContentControl将网格从只读移动到编辑模式

这里的XAML代码

<layoutToolkit:TransitioningContentControl x:Name="tcc" 
               Grid.Row="1" 
               BorderThickness="1"> 
     <layoutToolkit:TransitioningContentControl.Content> 
      <Grid x:Name="grd1" Background="White"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 

       </Grid.ColumnDefinitions> 

       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 

       <TextBlock Text="Name" Grid.Row="0" Grid.Column="0"/> 

       <TextBox x:Name="txtName" Grid.Column="1" Grid.Row="0" IsReadOnly="True"></TextBox> 

       <TextBlock Text="Email" Grid.Row="1" Grid.Column="0"/> 

       <TextBox x:Name="txtEmail" Grid.Column="1" Grid.Row="1" IsReadOnly="True"></TextBox> 
       <Button x:Name="ChangeContent" Content="Updatee Info" Click="ChangeContent_Click" Grid.Column="1" Grid.Row="2"></Button> 
      </Grid> 
     </layoutToolkit:TransitioningContentControl.Content> 
    </layoutToolkit:TransitioningContentControl> 

,并在按钮单击事件

private void ChangeContent_Click(object sender, System.Windows.RoutedEventArgs e) 
    { 
     //tcc.Content = DateTime.Now.ToString(); 
     txtName.IsReadOnly = false; 
     txtEmail.IsReadOnly = false;   
    } 

如何在此场景中实现过渡效果?

回答

3

我对TransitioningContentControl不太熟悉,但我认为要使该控件正常工作,您需要切换Content本身,而不仅仅是其中的Control的属性。为了实现所需的转换,您可以为文本框创建自定义(或修改现有)ControlTemplate,其中包含名为'ReadOnly'的自定义VisualState和其中的Storyboard以获得所需的效果。或者您可以创建两个不同的Grid控件,其中一个带有ReadOnly接口,另一个带有Editable接口,并且在您的代码中,只需在它们之间切换即可。

下面的链接有关于如何使用TransitioningContentControl工作示例:http://firstfloorsoftware.com/blog/animated-page-navigation-in-sl3/

+0

感谢您阅读的帖子,是的,你是right..the内容需要改变。 这是我设法获得动画效果的方式: - 链接的点击事件中的 - ,首先我将TCC的内容设置为空,然后我改变了控件的可见性,并在最后将网格分配回内容的TCC。 和现在,我不知道如何创建一个自定义的视觉状态,但它听起来很有趣..我看着那个 – Jags 2010-06-20 11:07:52

+2

链接不再工作 – MickyD 2013-10-21 00:14:51

相关问题