programing

캔버스를 변경합니다.코드에 있는 부동산을 남겨두고?

golfzon 2023. 4. 19. 23:45
반응형

캔버스를 변경합니다.코드에 있는 부동산을 남겨두고?

XAML에 직사각형이 있어 직사각형을 변경하고 싶다.Canvas.Left코드 뒤에 속성:

<UserControl x:Class="Second90.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300" KeyDown="txt_KeyDown">
    <Canvas>
        <Rectangle 
            Name="theObject" 
            Canvas.Top="20" 
            Canvas.Left="20" 
            Width="10" 
            Height="10" 
            Fill="Gray"/>
    </Canvas>
</UserControl>

하지만 이 방법은 작동하지 않습니다.

private void txt_KeyDown(object sender, KeyEventArgs e)
{
    theObject.Canvas.Left = 50;
}

이걸 하기 위한 구문이 뭔지 아는 사람?

Canvas.SetLeft(theObject, 50)

이거 드셔보세요

theObject.SetValue(Canvas.LeftProperty, 50d);

DependencyObject(대부분의 WPF 클래스 베이스)에는 모든 의존속성에 대한 공통 접근을 허용하는 메서드 그룹이 있습니다.그들은 그렇다.

  • 값 설정
  • 가치의 취득
  • 클리어 밸류

편집 대상 유형이 이중이므로 이중 리터럴을 사용하도록 세트를 업데이트했습니다.

오브젝트의 속성을 변경하기 때문에 JaredPar가 제안하는 방법을 사용하는 것이 좋습니다.

theObject.SetValue(Canvas.LeftProperty, 50d);

언급URL : https://stackoverflow.com/questions/541420/change-canvas-left-property-in-code-behind

반응형