Ориентация текста

Я знаю, что вы можете сделать это, чтобы получить вертикальный текст в заголовке вкладки:

<Window x:Class="Abodemploy.Window1"  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    Title="Window1" Height="300" Width="300">  
    <Grid>  
        <TabControl Margin="0" Name="tabControl1" FlowDirection="LeftToRight" TabStripPlacement="Left">  
            <TabItem>  
                <TabItem.Header>  
                    <StackPanel Orientation="Horizontal">  
                        <TextBlock>Homes</TextBlock>  
                    </StackPanel>  
                </TabItem.Header>  
                <TabItem.LayoutTransform>  
                <TransformGroup>  
                    <RotateTransform Angle="90" />  
                </TransformGroup>  
                </TabItem.LayoutTransform>  
                <Grid />  
            </TabItem>  
        </TabControl>  
    </Grid>  
</Window>  

Однако текстовые буквы расположены боком. Я бы хотел (если возможно), чтобы ориентация букв была правильной (т.е. вверх), но текст текла вниз, возможно ли это, или мне просто снится несбыточный сон?

Спасибо Psy


person Psytronic    schedule 18.03.2010    source источник
comment
Не могли бы вы сделать это, установив очень маленькое значение ширины и включив перенос текста?   -  person Robin Bennett    schedule 17.10.2018


Ответы (2)


Думаю, следующий пост отвечает на ваш вопрос: vertical-text-in-wpf-textblock

и я смог получить желаемый результат следующим образом:

XAML

<Window x:Class="Test.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <TabControl Margin="0" Name="tabControl1" FlowDirection="LeftToRight" TabStripPlacement="Left">
            <TabItem>
                <TabItem.Header>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock >
                            <ItemsControl x:Name="ic"></ItemsControl>
                        </TextBlock>
                    </StackPanel>
                </TabItem.Header>
                <Grid />
            </TabItem>
        </TabControl>
    </Grid>
</Window>

Затем установите ItemsSource элемента ItemsControl на строку, которую вы хотите включить в код позади.

person Leom Burke    schedule 18.03.2010
comment
Да, я искал аналогичный вопрос и не смог его найти, затем, когда я искал другую проблему, я наткнулся на этот ответ, и да, он работает - person Psytronic; 18.03.2010
comment
Пришлось внести несколько изменений, и теперь заголовки вкладок тупо широки, но это то, что мне нужно - person Psytronic; 18.03.2010
comment
Круто - рад, что вы разобрали - person Leom Burke; 18.03.2010

Вы просите об этом?

 <TabItem.Header>  
      <StackPanel>  
            <TextBlock>H</TextBlock>  
            <TextBlock>o</TextBlock>
            <TextBlock>m</TextBlock>  
            <TextBlock>e</TextBlock>
            <TextBlock>s</TextBlock>
      </StackPanel>  
 </TabItem.Header>  
person Arsen Mkrtchyan    schedule 18.03.2010