2016-06-20 35 views
0

我試圖使用MVVMLight並且不打破MVVM模式來實現像W10 mobile中的instagram應用中存在的那樣的打開/關閉導航。XAML和MVVMLight自定義動畫

我有一個框架,我想單擊頁面中的一個按鈕放置在該框架,打開一個「子窗口」從右到左。

任何意識?

+0

你有gif/video/image的例子,即使它只是你想要的轉換的一個簡單的草圖? – Logan

回答

0

你應該有一個兩個窗口的面板,並設置一個隱藏的可見性。
綁定它對ViewModel上屬性的可見性。
當你點擊按鈕,將可見性設置爲True,並有一個wpf動畫,所以它會「滑動」進/出。

0

我的一個想法是使用一個DataTemplate創建一個窗口,所以在你的mainwindow.xaml,你會像

<Window ..  
    <Grid> 
     <ContentPresenter Content="{Binding Window1}"/> 
     <ContentPresenter Content="{Binding Window2}"/>  
    </Grid> 
/> 

從那裏,也許你可以有一個布爾屬性,以檢查是否該屬性爲true,然後將可見性設置爲可見,否則,將可見性設置爲摺疊/隱藏。在你需要的情況下,這裏是轉換器booleantovisibility(以防萬一你需要它)

using System; 
using System.Windows; 
using System.Windows.Data; 

namespace FaceTheWall.converters 
{ 
    class BooleanToVisibilityConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      if (value is Boolean && (bool)value) 
      { 
       return Visibility.Visible; 
      } 
      return Visibility.Collapsed; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      if (value is Visibility && (Visibility)value == Visibility.Visible) 
      { 
       return true; 
      } 
      return false; 
     } 
    } 
} 

這裏是如何在XAML使用booleantovisibility轉換器的例子

<TextBox... 
    Visibility="{Binding ButtCancel, Converter={StaticResource BooleanToVisibilityConverter}}" 
... > 
</TextBox