배율을 적용하지 않고 Grid의 열과 행을 변환 할 수 있습니까?WPF : 배율을 조정하지 않고 배율을 조정
크기 조정없이 셀에 맞게 각 셀의 내용을 간단하게 조정하고 싶습니다 (예 : 텍스트의 글꼴 크기가 동일하게 유지됨).
예를 들어, XAML의 다음 부분에서 나는 규모보다는 크기를 조정하려면 버튼을 원하는 다음이 적용됩니다 변환 때문에 당신이 적용하고있는 방법으로
<Grid Name="grid1" RenderTransformOrigin="0.5, 0.5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="300" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<Grid.RenderTransform>
<ScaleTransform ScaleX="{Binding Value, ElementName=slider1 }" ScaleY="{Binding Value, ElementName=slider1 }"
/>
</Grid.RenderTransform>
<Button Content="Button3" Margin="6" Name="button3" />
<Button Content="Button4" Grid.Column="1" Margin="6" Name="button4" />
<Button Content="Button5" Grid.Column="2" Margin="6" Name="button5" />
<Button Content="Button6" Grid.Column="0" Grid.Row="1" Margin="6" Name="button6" />
</Grid>
고마워요. 그것은 아주 좋은 생각입니다! 그리드 자체는 ScrollViewer 내부에있어 그리드의 다른 영역에 대한 뷰포트를 제공합니다. Grid 컨트롤은 사각형이 아니므로 너비와 높이를 슬라이더에 직접 바인딩 할 수 없습니다. 또한 Transform Origin이 왼쪽 상단으로 설정되어있는 것처럼 스케일이 기능하며 그리드의 중심 (또는 뷰포트의 중심)이 더 좋을 것입니다. xaml에서만 그렇게 할 수 없다고 생각합니다. 그래서 사각형을 계산하고 이것을 바인딩하는 코드 객체를 생성해야합니까? –
비 정사각형 문제 : 직접 바인딩하는 대신 바인더에서 변환기를 사용하여 슬라이더 값에 고정 된 값을 곱할 수 있습니다. 따라서 슬라이더 범위를 1.0에서 2.0으로 만들고 원래의 너비/높이가 무엇이든간에 곱하는 변환기로 바인더를 바인딩하십시오. 여전히 센터링 문제를 해결하지는 못했지만 시작일뿐입니다 :-) –
센터링 문제는 상단 및 왼쪽 속성에 변환기를 적용하는 것일뿐입니다 –