2016-06-23 1 views
0

저는 Windows의 최상위 'Grid'컨트롤에서 LayoutTransform을 사용하여 ScaleTransform을 수행하고 UI에서 확대/축소 요소를 구현합니다 (브라우저의 방식과 유사).WPF LayoutTransform : ToolTip 크기가 수정되지 않았습니다.

정상적으로 작동하지만 툴팁이 조정되지 않은 크기로 표시됩니다.

예를 들어 창에있는 모든 툴팁을 열거하고 .cs 파일에서 크기를 조정하는 방법이 있다면? ... 아니면 다른 어떤 방법으로 이것을 처리 할 수 ​​있습니까?

+0

스케일 팩터는 동적입니까? 그렇다면 그들은 어디에서 왔는가? – Rowbear

+0

그들은 존재하지만 코드를 단순화하여 더 이상 존재하지 않게되었습니다. 내 XAML에서 이것을 사용하고 있습니다. Warpin

답변

0

툴팁이 영향을받지 않는 이유는 툴팁이 윈도우의 시각적 트리의 일부가 아닌 팝업이기 때문입니다. 따라서 창의 구성 요소에 대해 수행 된 모든 레이아웃 변환은 툴팁으로 이어지지 않습니다. I가 scaleX가/Y가

<Window.Resources> 
     <Style TargetType="ToolTip"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ToolTip}"> 
         <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
          <Border.LayoutTransform> 
           <ScaleTransform ScaleX="{Binding ScaleFactor}"></ScaleTransform> 
          </Border.LayoutTransform> 
          <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Resources> 
    <StackPanel x:Name="MainPanel"> 
     <StackPanel.LayoutTransform> 
      <ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}"></ScaleTransform> 
     </StackPanel.LayoutTransform> 
     <TextBlock ToolTip="blah">haha!</TextBlock> 
    </StackPanel> 

예에서 : 당신은 대부분 일반적인 툴팁이있는 경우 (텍스트는 기본적으로), 당신은 당신의 윈도우 자원이 아닌 키 입력 스타일을 만들 수 있으며, WPF는 자동으로 모든 툴팁에 그 적용됩니다 툴팁은 내 윈도우의 뷰 모델에서 ScaleFactor 속성에 바인딩됩니다. 내가 믿는 것처럼 당신은 그것을 역동적으로 유지할 수있다.

0

Rowbear이 말한 것과 마찬가지로 툴팁은 팝업이며 (창), 고유 한 시각적 트리가 있습니다. 그러나, 내가 아는 한 큰 문제는 이러한 팝업이 생성 컨트롤에서 DataContext를 상속받지 않는다는 것입니다.

<Window.Resources> 
    <Style TargetType="ToolTip"> 
     <Setter Property="LayoutTransform" Value="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.LayoutTransform}" /> 
    </Style> 
</Window.Resources> 
+0

감사합니다! 당신의 대답에 묘사 된대로 바인딩을 설정해야했습니다. 함께 나는 어떻게 든 결합 된 대답을 받아 들일 수 있었다! – Warpin

+0

이상한! 처음에는 이것이 문제가 될 것이라고 생각했지만 xaml을 테스트 해 보았습니다. 리소스가 첨부 된 창. 흥미 롭 군. – Rowbear

관련 문제