Silverlight — проблема с шириной повернутого текстового блока

#silverlight #transform

#silverlight #преобразование

Вопрос:

У меня есть следующая сетка:

     <Grid Background="LightGray" x:Name="ProgrammPoolTextGrid">
        <TextBlock x:Name="tbLeft" 
                   Margin="0" 
                   Text="PROGRAMMPOOL" 
                   TextWrapping="NoWrap" 
                   Width="100" 
                   Height="94" 
                   RenderTransformOrigin="0.5,0.5" 
                   HorizontalAlignment="Left" 
                   UseLayoutRounding="False" 
                   d:LayoutRounding="Auto" >
            <TextBlock.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="-90"/>
                    <TranslateTransform/>
                </TransformGroup>
            </TextBlock.RenderTransform>
        </TextBlock>
    </Grid>
  

Мне нужен текстовый блок шириной всего 40 пикселей, но если я изменю ширину текстового блока или сетки, текст сократится. Есть идея?

Ответ №1:

Что происходит, так это то, что преобразование выполняется после завершения операций измерения и компоновки, поэтому оно принимает меры исходного элемента управления, это можно исправить с помощью элемента управления LayoutTransformer, который включен в silverlight toolkit.

Вот пример: Использование элемента управления LayoutTransformer Silverlight Toolkit для текста заголовка столбца под углом (из блогов MSDN)