在 Windows 10 移动应用程序中创建秒表计数器控件
Create a Stopwatch Counter Control in Windows 10 Mobile App
我目前正在开发 Windows 10 个移动应用程序
我想制作这样的秒表:
我遵循了这个教程:Create a StopWatch Counter control in WPF(XAML)
但是我正在研究 Windows 10,所以我不能使用 IMultiValueConverter
任何帮助我解决这个问题的建议..非常感谢。
这是您可以开始的东西 - 可以像这样使用:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" xmlns:arc="using:ArcControl">
<Grid Width="80" Height="80">
<arc:Arc Thickness="3" Fill="Blue" PercentValue="{Binding Percent}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<TextBlock Text="{Binding Percent}" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Grid>
隐藏代码:
public sealed partial class MainPage : Page, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void RaiseProperty(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
private int percent = 0;
public int Percent
{
get { return percent; }
set { percent = value; RaiseProperty(nameof(Percent)); }
}
private DispatcherTimer timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(0.25) };
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
timer.Tick += (s, e) => { Percent++; if (Percent > 99) Percent = 0; };
timer.Start();
}
}
结果:
当然,它还需要做更多的工作才能让它变得更好,满足您的需求,但是有很多 blogs/posts 关于 circular/radial 控件。你可以看看at this post, this blog和默认ProgressBar的样式。通过这些,您可以使用合适的 VisualStates 和过渡设计您自己的控件,看起来就像您想要的那样。
我目前正在开发 Windows 10 个移动应用程序
我想制作这样的秒表:
我遵循了这个教程:Create a StopWatch Counter control in WPF(XAML)
但是我正在研究 Windows 10,所以我不能使用 IMultiValueConverter
任何帮助我解决这个问题的建议..非常感谢。
这是您可以开始的东西 -
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" xmlns:arc="using:ArcControl">
<Grid Width="80" Height="80">
<arc:Arc Thickness="3" Fill="Blue" PercentValue="{Binding Percent}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<TextBlock Text="{Binding Percent}" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Grid>
隐藏代码:
public sealed partial class MainPage : Page, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void RaiseProperty(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
private int percent = 0;
public int Percent
{
get { return percent; }
set { percent = value; RaiseProperty(nameof(Percent)); }
}
private DispatcherTimer timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(0.25) };
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
timer.Tick += (s, e) => { Percent++; if (Percent > 99) Percent = 0; };
timer.Start();
}
}
结果:
当然,它还需要做更多的工作才能让它变得更好,满足您的需求,但是有很多 blogs/posts 关于 circular/radial 控件。你可以看看at this post, this blog和默认ProgressBar的样式。通过这些,您可以使用合适的 VisualStates 和过渡设计您自己的控件,看起来就像您想要的那样。