레이블에 시간을 표시하고 싶습니다. 레이블 내용은 창이로드 될 때 자동으로 새로 고쳐 져야합니다.WPF : 창로드에 대한 새로 고침/업데이트 컨트롤
레이블 컨트롤이있는 간단한 WPF 창이 있습니다. 여기에 도시 된 바와 같이
<Window x:Class="shoes.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Grid>
<Label Margin="12" Name="lblSeconds"></Label>
<Button Margin="68,22,135,0" Name="button1" Height="24" VerticalAlignment="Top" Click="button1_Click">Button</Button>
</Grid>
</Window>
여기 사용할 수있는 코드를 보았다 : http://geekswithblogs.net/NewThingsILearned/archive/2008/08/25/refresh--update-wpf-controls.aspx
그리고이 방법에 맞게 수정 :
public partial class Window1 : Window
{
private static Action EmptyDelegate = delegate() { };
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (IsLoaded)
{
LoopingMethod();
}
}
private void LoopingMethod()
{
while(true)
{
lblSeconds.Content = DateTime.Now.ToLongTimeString();
lblSeconds.Refresh();
Thread.Sleep(10);
}
}
}
public static class ExtensionMethods
{
private static Action EmptyDelegate = delegate() { };
public static void Refresh(this UIElement uiElement)
{
uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
}
}
내가 코드를 발견했다 꽤 잘 일 때 작동을 button_Click 이벤트를 통해 트리거됩니다. 이 같은 Window_Loaded 이벤트를 통해 코드를 실행하려고했지만 헛된. 창 내용은 절대로 표시되지 않습니다.
창이로드 될 때 레이블이 자동으로 업데이트되도록하려면 어떻게해야합니까?
저는 Backgroundworker를 사용하여 원하는대로했습니다! –