如何使用 MVVM 显示 Windows Phone 8 应用程序的加载栏
本文关键字:应用程序 加载 Phone 何使用 MVVM 显示 Windows | 更新日期: 2023-09-27 18:36:34
如何从视图模型中调用负载杆?带有飘过的小点的酷炫的那个。我似乎找不到合适的必应短语来搜索它。
试试这个。
XAML
<phone:PhoneApplicationPage
...............>
<phone:PhoneApplicationPage.DataContext>
<local:ViewModel/>
</phone:PhoneApplicationPage.DataContext>
<shell:SystemTray.ProgressIndicator>
<shell:ProgressIndicator IsIndeterminate="{Binding IsBusy}"
IsVisible="{Binding IsBusy}"
Text="{Binding Message}" />
</shell:SystemTray.ProgressIndicator>
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="Show Progress" Command="{Binding _ShowProgressBar}" Height="100" />
</Grid>
</Grid>
</phone:PhoneApplicationPage>
C#
public class ViewModel : INotifyPropertyChanged
{
private bool _IsBusy;
public bool IsBusy
{
get { return _IsBusy; }
set { _IsBusy = value; RaisePropertyChanged("IsBusy"); }
}
private string _Message;
public string Message
{
get { return _Message; }
set { _Message = value; RaisePropertyChanged("Message"); }
}
public RelayCommand _ShowProgressBar { get; set; }
public ViewModel()
{
_ShowProgressBar = new RelayCommand(() => ShowProgressBar());
}
private void ShowProgressBar()
{
IsBusy = true;
Message = "Loading...";
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
到这里,这个例子就是你需要的。http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg442303(v=vs.105).aspx
您正在寻找的是一个不确定的进度条。
可以从系统托盘 [3] 调用内置进度条,也可以从工具箱中在 XAML 中定义自定义进度条。
对于虚线效果,您需要做的就是将进度条的不确定属性设置为 True,否则它将显示一个进度条,显示进程完成百分比。
以下是一些有用的文章供您参考:
- 创建自定义不确定进度条 - MSDN
- 进度条的设计原则 - MSDN
- 进度条教程 - C# 角