- 私は c# wpf アプリケーションに取り組んでおり、アプリケーションに時計を追加したいと考えています:
- アプリケーションでその時計を作成する方法は?
- アプリケーション クロックを Windows クロックにリンクしないようにする方法は??
- アプリケーションでさまざまなスタイルで時計を表示する方法は?
- カレンダー、タイムゾーンなどを含める方法..そして、アプリケーション自体を介してこれらのものを変更しますか?
- データベースのタイム スタンプをアプリケーション クロックにリンクすることはできますか?また、その方法は?
質問する
9671 次
1 に答える
5
このような時計を作るのはとても簡単でしょう。
ここにあなたが始めるための小さな例があります
Xaml:
<Window x:Class="WpfApplication8.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="233" Width="143" Name="UI">
<Grid DataContext="{Binding ElementName=UI}">
<StackPanel>
<TextBlock Text="{Binding CurrentTime}" />
<ComboBox ItemsSource="{Binding TimeZones}" SelectedItem="{Binding SelectedTimeZone}" />
</StackPanel>
</Grid>
</Window>
コード:
public partial class MainWindow : Window, INotifyPropertyChanged
{
private string _currenttime;
private TimeZoneInfo _selectedTimeZone;
public MainWindow()
{
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer(DispatcherPriority.Background);
timer.Interval = TimeSpan.FromSeconds(1);
timer.IsEnabled = true;
timer.Tick += (s, e) =>
{
UpdateTime();
};
}
public List<TimeZoneInfo> TimeZones
{
get { return TimeZoneInfo.GetSystemTimeZones().ToList(); }
}
public string CurrentTime
{
get { return _currenttime; }
set { _currenttime = value; OnPropertyChanged("CurrentTime"); }
}
public TimeZoneInfo SelectedTimeZone
{
get { return _selectedTimeZone; }
set
{
_selectedTimeZone = value;
OnPropertyChanged("SelectedTimeZone");
UpdateTime();
}
}
private void UpdateTime()
{
CurrentTime = SelectedTimeZone == null
? DateTime.Now.ToLongTimeString()
: DateTime.UtcNow.AddHours(SelectedTimeZone.BaseUtcOffset.TotalHours).ToLongTimeString();
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
時計:
于 2013-01-23T01:28:01.643 に答える