2012-07-17 69 views
0

我用translatetransform來滑動我的子窗口,但我認爲我的xaml代碼有問題。這不是窗戶在滑動,而是窗戶在滑動(或網格)。滑動的兒童WIndow無法在wpf中工作

這是我的子窗口XAML:

<Window x:Class="SAMPLE.ChildWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    WindowStartupLocation="CenterOwner" 
    x:Name="HomeWindows" 
    Title="HomeWindow" Height="348" Width="440" Loaded="HomeWindows_Loaded"> 
    <Window.RenderTransform> 
    <TranslateTransform /> 
    </Window.RenderTransform> 
    <Window.Resources> 
    <Storyboard x:Key="SlaydAndFeyd" > 
     <DoubleAnimation Storyboard.TargetName="HomeWindows" Storyboard.TargetProperty="(Window.RenderTransform).(TranslateTransform.X)" From="50" To="0" Duration="0:0:0.4" /> 
    </Storyboard> 
    </Window.Resources> 

,然後我的函數,調用情節提要:

public void SlaydAndFeyds() 
    { 
     (FindResource("SlaydAndFeyd") as Storyboard).Begin(this); 
    } 
在主窗口代碼

現在:

namespace SAMPLE 
{ 
    public partial class MainWindow : Window 
    { 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private ChildWindow NewChildWindow = new ChildWindow(); 

    private void btnShowChild_Click(object sender, RoutedEventArgs e) 
    { 
     NewHomeWindow.Owner = this; 
     NewHomeWindow.Show(); 
    } 

    private void btnSlideChild_Click(object sender, RoutedEventArgs e) 
    { 
     NewHomeWindow.SlaydAndFeyds(); 
    } 

或者任何人有一個想法如何可以滑動我的子窗口?

回答

1

該示例中的RenderTransform將影響窗口的內容,而不是窗口本身。

要移動窗口,請使用EventTrigger調整Left/Top屬性。我猜測你想把它左移50 pix左右4秒以上,調整數字以適應:

<Window.Triggers> 
    <EventTrigger RoutedEvent="Window.Loaded"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation BeginTime="00:00:00"  
           Storyboard.TargetName="HomeWindows"  
           Storyboard.TargetProperty="(Window.Left)"  
           By="-12"  
           Duration="0:0:4" /> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</Window.Triggers> 
+0

感謝你的快速答覆先生史蒂夫。我怎樣才能將其轉換爲C#代碼?導致我想要做的是。讓我說我有兩個按鈕。命名爲家庭和用戶。所以如果我在第一次加載時首先點擊home,它會滑動並從右側淡入。如果即時點擊用戶按鈕,出現的第一個子窗口將滑動到左側並淡出,下一個子窗口將滑動並淡入淡出。就像反之亦然。另一件事,我可以結合兩個動畫在同一時間...像幻燈片和淡入淡出的C#代碼?謝謝...(抱歉作爲新手) – user1405327 2012-07-17 12:09:24

+0

不幸的是,這要麼是針對所需行爲(不同於原始故事板問題)的一些自定義編碼,要麼需要在Blend這樣的設計師身邊玩耍,才能獲得理想的效果。 – 2012-07-19 00:51:16