首页 > 解决方案 > 网格中的旋转元素 - 破坏分布

问题描述

我将网格划分为:

(0,0) -> 元素

(0,1) -> 垂直尺寸

(1,0) -> 水平尺寸

水平尺寸工作正常

怎么做才能在垂直维度上获得相同的效果?旋转元件破坏了整个系统。我尝试了不同的设置,但找不到正确的解决方案。

同样重要的是,在缩放 FontSize 时保持不变。

一切都在 ViewBox 中,长度是动态插入的。

<Viewbox Name="MainVB">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="20"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <Grid Grid.Column="0" Grid.Row="0" >
                    <StackPanel Orientation="Vertical">
                        <Rectangle Width="{Binding SRW}" Height="20" Margin="0,0,0,0" HorizontalAlignment="Center" StrokeThickness="0" Stroke="Black" Fill="#FFBADCD0"/>
                        <Rectangle Width="{Binding A}" Height="{Binding HF}" Margin="0,0,0,0" HorizontalAlignment="Center" StrokeThickness="0.5" Stroke="Black" Fill="#FF7E7738"/>
                        <Rectangle Width="{Binding A}" Height="{Binding BWR}" Margin="0,-0.5,0,0" HorizontalAlignment="Center" StrokeThickness="0.5" Stroke="Black" Fill="Goldenrod"/>
                    </StackPanel>
                </Grid>

                <Grid Grid.Column="0" Grid.Row="1" >
                    <StackPanel Margin="0,0,0,0" Orientation="Vertical">
                        <TextBlock FontSize="{Binding ElementName=MainVB, Path=ActualWidth, Converter={StaticResource conv}}" Margin="-20,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Top"><Run Text="{Binding A}"/> cm</TextBlock>
                        <Path Width="{Binding A}" Height="10" Margin="20,-5,0,0" StrokeThickness="0.4" Stroke="Black" HorizontalAlignment="Left" VerticalAlignment="Center" Data="M0,5 L100,5 M0,0 L0,10 M100,0 L100,10" Stretch="Fill"/>
                    </StackPanel>
                </Grid>

                <Grid Grid.Column="1" Grid.Row="0" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5" >
                    <StackPanel Margin="0,0,0,0" Orientation="Vertical" Background="#FFBF8F8F" RenderTransformOrigin="0.5,0.5">
                        <StackPanel.RenderTransform>
                            <TransformGroup>
                                <RotateTransform Angle="270"/>
                            </TransformGroup>
                        </StackPanel.RenderTransform>
                        <TextBlock FontSize="{Binding ElementName=MainVB, Path=ActualWidth, Converter={StaticResource conv}}" Margin="0,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Top"><Run Text="{Binding A}"/> cm</TextBlock>
                        <Path Width="{Binding L}" Height="10" Margin="0,0,0,0" StrokeThickness="0.4" Stroke="Black" Data="M0,5 L100,5 M0,0 L0,10 M100,0 L100,10" Stretch="Fill"/>
                    </StackPanel>
                </Grid>
            </Grid>
        </Viewbox>

照片

标签: c#wpfxaml

解决方案


推荐阅读