2010-05-28 70 views
0

我有兩個xaml文件MainWindow.xaml和其他用戶控件WorkDetail.xaml文件。 MainWindow.xaml文件有一個文本框,按鈕,列表框和對WorkDetail.xaml(摺疊的用戶控件)的引用。無論何時用戶輸入任何文本,當單擊添加按鈕時,它都會添加到列表框中。當雙擊列表框中的任何項目時,WorkDetail.xaml的可見性設置爲可見並顯示。在WorkDetail.xaml(用戶控件)中,它具有文本塊和按鈕。文本塊顯示所選項目的文本,關閉按鈕將WorkDetail窗口的可見性設置爲摺疊狀態。現在,我試圖在WorkDetail.xaml變爲可見並摺疊時對其進行動畫製作。當雙擊列表框中的任何項目並將WorkDetail.xaml可見性設置爲可見時,我想創建一個在MainWindow上從右向左移動WorkDetail.xaml窗口的動畫。當單擊WorkDetail.xaml文件中的關閉按鈕並摺疊WorkDetail.xaml文件時,我想從MainWindow中將WorkDetail.xaml文件從左向右滑動。當用戶控件顯示並摺疊時添加動畫在Wpf

這裏是截圖: alt text http://i48.tinypic.com/13znac5.jpg

MainWindow.xaml代碼:

<Window...> 
    <Grid Background="Black" >  
      <TextBox x:Name="enteredWork" Height="39" Margin="44,48,49,0" TextWrapping="Wrap" VerticalAlignment="Top"/> 
      <ListBox x:Name="workListBox" Margin="26,155,38,45" FontSize="29.333" MouseDoubleClick="workListBox_MouseDoubleClick"/> 
      <Button x:Name="addWork" Content="Add" Height="34" Margin="71,103,120,0" VerticalAlignment="Top" Click="Button_Click"/> 

      <TestWpf:WorkDetail x:Name="WorkDetail" Visibility="Collapsed"/> 
     </Grid> 
</Window> 

MainWindow.xaml.cs類代碼:

namespace TestWpf 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      this.InitializeComponent(); 
     } 

     private void Button_Click(object sender, RoutedEventArgs e) 
     { 
      workListBox.Items.Add(enteredWork.Text); 
     } 

     private void workListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
     { 
      WorkDetail.workTextBlk.Text = (string)workListBox.SelectedItem; 
      WorkDetail.Visibility = Visibility.Visible; 
     } 
    } 
} 

WorkDetail.xaml代碼:

<UserControl ..> 
    <Grid Background="#FFD2CFCF"> 
     <TextBlock x:Name="workTextBlk" Height="154" Margin="33,50,49,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="29.333" Background="#FFF13939"/> 
     <Button x:Name="btnClose" Content="Close" Height="62" Margin="70,0,94,87" VerticalAlignment="Bottom" Click="btnClose_Click"/>  
    </Grid> 
</UserControl> 

WorkDetail.xaml.cs類代碼:

namespace TestWpf 
{ 
    public partial class WorkDetail : UserControl 
    { 
     public WorkDetail() 
     { 
      this.InitializeComponent(); 
     } 

     private void btnClose_Click(object sender, System.Windows.RoutedEventArgs e) 
     { 
      Visibility = Visibility.Collapsed; 
     } 
    } 
} 

誰能告訴我怎樣才能做到這一點?

回答

0

this link對你有用嗎?我認爲使用基於VisualBrush的技術可以完成非常相似的事情。值得一看!

JAPF http://www.remote-screenshots.com/thumbs/medium/0/www.japf.fr.jpg

另一個想法是使用VisualStateManager和Transistions:您可以覆蓋你的控件的樣式信息,並使用故事板動畫 - 無需工具,如混合這可能成爲非常棘手,但。

希望無論如何都有幫助。

最好的問候,
托馬斯