WPF 런타임 동안 UI를 업데이트하는 방법

RayRayRay

좋아, 내 문제는 다음과 같습니다.

많은 검은 색 원과 하나의 빨간색 원이있는 Canvas를 보여주는 UI가 있습니다.

그래서 : "시작"버튼을 누르면 코드가 빨간색 원을 오른쪽으로 10 번 이동합니다. 논리에서 나는 모든 이동 후 모든 교차점을 계산합니다. 그래서 10 번 계산합니다. 하지만 이제는 움직일 때마다 UI를 업데이트하고 교차로를 표시하고 싶습니다.

여기에 코드 예제

        for(int i = 0; i < 10; i++)
        {
            rc.xValue += 20;
            calculateIntersections();
            //now here the UI should be updated
            Thread.Sleep(1000);
        }

그래서 나는 논리의 계산에서 "시각화"를 얻을 것입니다.

이것을 어떻게 알 수 있습니까?

바인딩을 사용할 수없는 이유 (또는 다른 방법을 모릅니다)의 문제는 바인딩을 사용하면 이동의 마지막 단계 만 볼 수 있다는 것입니다. 200을 오른쪽으로 움직이면 빨간 원이 보이게되는데 .....하지만 모든 걸보고 싶어요.

내가 시도한 것. 버튼을 클릭 할 때마다 단계를 세어 늘 렸습니다. 그러나 그것은 편안합니다. 나는 매번 클릭하지 않고 이것을 "영화"처럼 원한다. 그리고 많은 "카운터"보다 "foreach"가 많을수록 훨씬 쉽습니다.

누기

Property는 INotifyPropertyChanged바인딩 작업을 위해 인터페이스에서 오는 PropertyChanged 이벤트를 호출 해야합니다. 이를 달성하는 가장 빠른 방법이 있습니다.

코드 뒤에서

public partial class MainWindow : Window, INotifyPropertyChanged
{
    private double _rcXValue;
    public double RcXValue
    {
      get { return _rcXValue; }
      set
      {
        _rcXValue = value;
        if (PropertyChanged != null)
          PropertyChanged(this, new PropertyChangedEventArgs("RcXValue"));
      }
    }

    public MainWindow()
    {
      InitializeComponent();
    }

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
      for (int i = 0; i < 10; i++)
      {
        RcXValue += 20; //UI should be updated automatically
        calculateIntersections();
        await Task.Delay(1000);
      }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

XAML에서

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="260*"/>
                <RowDefinition Height="59*"/>
            </Grid.RowDefinitions>
            <Canvas>
                <Ellipse Fill="Red" Height="17" Canvas.Left="{Binding RcXValue}" Stroke="Black" Canvas.Top="107" Width="17"/>
            </Canvas>
            <Button Content="Button" Grid.Row="1" Click="Button_Click"/>
        </Grid>
    </Grid>
</Window>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JavaFX 런타임 동안 BorderPane 높이를 얻는 방법은 무엇입니까?

분류에서Dev

JavaFX 런타임 동안 BorderPane 높이를 얻는 방법은 무엇입니까?

분류에서Dev

tabcontrol에서 추가 된 런타임에 항목 동안 타이머를 계산하는 방법

분류에서Dev

런타임에 동적으로 데이터 세트에서 xtrapivotgrid 데이터 소스를 설정하는 방법

분류에서Dev

WPF : 런타임에 동작을 변경하는 방법은 무엇입니까?

분류에서Dev

동시 SQL 업데이트를 처리하는 방법, 주어진 데이터베이스 구조가 런타임에 변경 될 수 있음

분류에서Dev

런타임에 동적으로 Predicate <T>를 만드는 방법

분류에서Dev

런타임 타이핑 검사를 테스트하는 동안 Python 클래스를 모의하는 방법은 무엇입니까?

분류에서Dev

런타임 동안 BizTalk에서 SSO에 쓰는 방법

분류에서Dev

로드하는 동안 WPF 업데이트 UI

분류에서Dev

WPF에서 런타임 동안 코드 뒤에 생성 된 프레임의 "사진을 찍는"방법은 무엇입니까?

분류에서Dev

C ++ .NET 런타임을로드하여 WPF 구성 요소를 호스팅하는 방법

분류에서Dev

Quarkus에서 런타임 동안 로그 수준을 변경하는 방법

분류에서Dev

Crystal Report : vb.net/VS2012를 사용하여 런타임 IM 동안 Crystal Report에서 텍스트 개체를 만드는 방법

분류에서Dev

Mongodb에서 Upsert의 타임 스탬프를 자동 업데이트하는 방법

분류에서Dev

Azure Functions 런타임이 업데이트 된시기를 확인할 수있는 방법이 있나요?

분류에서Dev

디버깅하는 동안 UI 업데이트를 볼 수있는 방법이 있습니까?

분류에서Dev

C # Win-Forms에서 데이터 그리드 뷰를 동적으로 (런타임) 채우는 방법

분류에서Dev

런타임에 FMX ListBoxGroupHeader 텍스트를 변경하는 방법

분류에서Dev

Android 앱이 작동하는 데 시간이 걸리는 런타임에서 작동하지 않습니다.이 문제를 해결하는 방법

분류에서Dev

런타임에 WPF 창 여백이 작동하지 않음

분류에서Dev

wpf에서 날짜를 업데이트하는 방법

분류에서Dev

Windows 런타임 구성 요소에 대한 참조를 추가하는 동안 순환 종속성을 피하는 방법은 무엇입니까?

분류에서Dev

UI가 일관성을 유지하도록 자동 레이아웃으로 런타임에 iOS에서 뷰를 숨기는 방법은 무엇입니까?

분류에서Dev

런타임에 WPF에서 맞춤법 검사가 활성화 된 텍스트 상자를 올바르게 추가하는 방법은 무엇입니까?

분류에서Dev

ro가 addr2line에 대한 런타임 동안 오프셋에서 backtrace_symbols ()에서 cpp 기호를 확인하는 방법

분류에서Dev

런타임 중에 데이터를 저장하는 가장 좋은 방법

분류에서Dev

VS에서 일반 C ++ 프로젝트를 CUDA 런타임 프로젝트로 업데이트하는 방법은 무엇입니까?

분류에서Dev

런타임 중에 MAIN 활동을 변경하는 방법

Related 관련 기사

  1. 1

    JavaFX 런타임 동안 BorderPane 높이를 얻는 방법은 무엇입니까?

  2. 2

    JavaFX 런타임 동안 BorderPane 높이를 얻는 방법은 무엇입니까?

  3. 3

    tabcontrol에서 추가 된 런타임에 항목 동안 타이머를 계산하는 방법

  4. 4

    런타임에 동적으로 데이터 세트에서 xtrapivotgrid 데이터 소스를 설정하는 방법

  5. 5

    WPF : 런타임에 동작을 변경하는 방법은 무엇입니까?

  6. 6

    동시 SQL 업데이트를 처리하는 방법, 주어진 데이터베이스 구조가 런타임에 변경 될 수 있음

  7. 7

    런타임에 동적으로 Predicate <T>를 만드는 방법

  8. 8

    런타임 타이핑 검사를 테스트하는 동안 Python 클래스를 모의하는 방법은 무엇입니까?

  9. 9

    런타임 동안 BizTalk에서 SSO에 쓰는 방법

  10. 10

    로드하는 동안 WPF 업데이트 UI

  11. 11

    WPF에서 런타임 동안 코드 뒤에 생성 된 프레임의 "사진을 찍는"방법은 무엇입니까?

  12. 12

    C ++ .NET 런타임을로드하여 WPF 구성 요소를 호스팅하는 방법

  13. 13

    Quarkus에서 런타임 동안 로그 수준을 변경하는 방법

  14. 14

    Crystal Report : vb.net/VS2012를 사용하여 런타임 IM 동안 Crystal Report에서 텍스트 개체를 만드는 방법

  15. 15

    Mongodb에서 Upsert의 타임 스탬프를 자동 업데이트하는 방법

  16. 16

    Azure Functions 런타임이 업데이트 된시기를 확인할 수있는 방법이 있나요?

  17. 17

    디버깅하는 동안 UI 업데이트를 볼 수있는 방법이 있습니까?

  18. 18

    C # Win-Forms에서 데이터 그리드 뷰를 동적으로 (런타임) 채우는 방법

  19. 19

    런타임에 FMX ListBoxGroupHeader 텍스트를 변경하는 방법

  20. 20

    Android 앱이 작동하는 데 시간이 걸리는 런타임에서 작동하지 않습니다.이 문제를 해결하는 방법

  21. 21

    런타임에 WPF 창 여백이 작동하지 않음

  22. 22

    wpf에서 날짜를 업데이트하는 방법

  23. 23

    Windows 런타임 구성 요소에 대한 참조를 추가하는 동안 순환 종속성을 피하는 방법은 무엇입니까?

  24. 24

    UI가 일관성을 유지하도록 자동 레이아웃으로 런타임에 iOS에서 뷰를 숨기는 방법은 무엇입니까?

  25. 25

    런타임에 WPF에서 맞춤법 검사가 활성화 된 텍스트 상자를 올바르게 추가하는 방법은 무엇입니까?

  26. 26

    ro가 addr2line에 대한 런타임 동안 오프셋에서 backtrace_symbols ()에서 cpp 기호를 확인하는 방법

  27. 27

    런타임 중에 데이터를 저장하는 가장 좋은 방법

  28. 28

    VS에서 일반 C ++ 프로젝트를 CUDA 런타임 프로젝트로 업데이트하는 방법은 무엇입니까?

  29. 29

    런타임 중에 MAIN 활동을 변경하는 방법

뜨겁다태그

보관