我試圖使用MVVMLight並且不打破MVVM模式來實現像W10 mobile中的instagram應用中存在的那樣的打開/關閉導航。XAML和MVVMLight自定義動畫
我有一個框架,我想單擊頁面中的一個按鈕放置在該框架,打開一個「子窗口」從右到左。
任何意識?
我試圖使用MVVMLight並且不打破MVVM模式來實現像W10 mobile中的instagram應用中存在的那樣的打開/關閉導航。XAML和MVVMLight自定義動畫
我有一個框架,我想單擊頁面中的一個按鈕放置在該框架,打開一個「子窗口」從右到左。
任何意識?
你應該有一個兩個窗口的面板,並設置一個隱藏的可見性。
綁定它對ViewModel上屬性的可見性。
當你點擊按鈕,將可見性設置爲True
,並有一個wpf動畫,所以它會「滑動」進/出。
我的一個想法是使用一個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
你有gif/video/image的例子,即使它只是你想要的轉換的一個簡單的草圖? – Logan