GUI를 업데이트하기 위해 PropertyChanged 이벤트를 contentcontrol의 부모로 라우팅하는 방법은 무엇입니까?

Roland Deschain

다음과 같은 부모 뷰가 있으며 콘텐츠 컨트롤을 포함합니다.

<ScrollViewer  Grid.Column="2" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <ContentControl Name="RobotWorkingArea" IsEnabled="{Binding IsRobotAreaEnabled}" Content="{Binding RobotAreaViewModel}" 
                HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</ScrollViewer>

로봇 작업 영역을 확대 / 축소 할 수 있어야하므로 그리드의 배율 변환을 사용합니다. 이는 마우스 휠 이벤트가 발생하면 변경됩니다.

   <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid.RenderTransform>
            <ScaleTransform ScaleX="{Binding RenderScaleX}" ScaleY="{Binding RenderScaleY}"/>
        </Grid.RenderTransform>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="PreviewMouseWheel">
                <ei:CallMethodAction MethodName="ChangeRenderSize" TargetObject="{Binding}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
        <ListView ItemsSource="{Binding PlacementConfiguration.EquipmentPlacementList}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                      SelectionMode="Single" Width="{Binding RobotAreaWidth}" Height="{Binding RobotAreaHeight}">
    ...
    ...
    ...

이것은 (지금까지 잘 작동 ChangeRenderSize()방법은 간단하게 값을 변경 RenderScaleX하고 RenderScaleY마우스 휠 방향 기준), 그러나이 ScrollViewer내 부모 뷰에서 업데이트하지 않고 아이 뷰의 새로운 크기로 변경합니다. 이로 인해 확대하면 전체 영역에 도달 할 수없고 축소하면 배경이 흰색이고 ScrollViewer고정 된 크기로 유지됩니다.

내 생각 엔 부모는 속성 변경 이벤트를 보지 못하기 때문에 자식의 현재 크기를 알지 못합니다. 이제 질문은 다음과 같습니다.

  • 이 가정이 맞습니까? 아니면 문제가 다른 곳에 있습니까?
  • 그렇다면, 어떻게 내가 최적의 경로는 속성의 이벤트 변경할 수 있습니다 RenderScaleXRenderScaleY부모 뷰를?
mm8

LayoutTransform대신 속성을 사용하십시오 RenderTransform.

<Grid.LayoutTransform>
    <ScaleTransform ScaleX="{Binding RenderScaleX}" ScaleY="{Binding RenderScaleY}"/>
</Grid.LayoutTransform>

RenderTransform렌더링에만 적용되며 레이아웃에 영향을 ScrollViewer미치지 않으므로 예상대로 작동하지 않습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관