Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 垂直旋转的文本块占据整个宽度,就像它是水平的一样_C#_Wpf_Xaml_Textblock_Text Rotation - Fatal编程技术网

C# 垂直旋转的文本块占据整个宽度,就像它是水平的一样

C# 垂直旋转的文本块占据整个宽度,就像它是水平的一样,c#,wpf,xaml,textblock,text-rotation,C#,Wpf,Xaml,Textblock,Text Rotation,我将TextBlock控件包装在边框中,以便查看占用空间的内容: 以下是XAML: <Border BorderBrush="Cyan" BorderThickness="3"> <TextBlock Style="{StaticResource subtitle}" Text="{Binding Title}" > <TextBlock.RenderTransform> <RotateTransform

我将
TextBlock
控件包装在边框中,以便查看占用空间的内容:

以下是XAML:

<Border BorderBrush="Cyan" BorderThickness="3">
    <TextBlock Style="{StaticResource subtitle}" Text="{Binding Title}" >
        <TextBlock.RenderTransform>
            <RotateTransform Angle="90" />
        </TextBlock.RenderTransform>
    </TextBlock>
</Border>

问题是它占用的空间比我需要的要大得多,如果我为它设置静态宽度,我会得到以下结果:

有什么建议吗?


<Setter Property="LayoutTransform"> 
    <Setter.Value> 
        <RotateTransform Angle="90" /> 
    </Setter.Value> 
</Setter> 
这是因为与大多数基于Web的应用程序一样,有一系列事件会触发/触发我们通常看到或处理的大部分事件都发生在渲染事件中。。到那时,页面已经被提供了,可以说,我不是100%确定,但我真的认为布局转换发生在预渲染期间



这是因为与大多数基于Web的应用程序一样,有一系列事件会触发/触发我们通常看到或处理的大部分事件都发生在渲染事件中。。到那时,页面已经被提供了,可以说,我不是100%确定,但我真的认为布局转换发生在预渲染期间。在运行时创建文本块并旋转它们时,我遇到了相同的问题。 我简单地通过设置

tb.Margin = .......
tb.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left;
tb.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
RotateTransform rt = new RotateTransform();
rt.Angle = -40;
tb.RenderTransform = rt;

如果您没有设置它们,转换将在居中文本上进行计算,并添加宽度以将其定位在您想要的位置…

在运行时创建文本块并旋转它们时,我遇到了相同的问题。 我简单地通过设置

tb.Margin = .......
tb.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left;
tb.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
RotateTransform rt = new RotateTransform();
rt.Angle = -40;
tb.RenderTransform = rt;

好像你没有设置它们,转换在居中文本上进行计算,并增加宽度以将其定位在您想要的位置…

是否有一个布局转换可以指定给Setter属性,并从中增加或减少边框…?是否有一个布局转换可以指定给Setter属性,并从中增加或减少边框减少边界…?啊哈!我必须使用LayoutTransform而不是RenderTransform。格拉齐!伙计,我很高兴我记性很好。。很高兴我能很快帮助你。。投票赞成。。LOL@SergioTapia
LayoutTransform
之所以有效,是因为它是在呈现文本块之前应用的<代码>渲染转换在文本块渲染并在UI中屏蔽其空间后应用。DJ,如果你想在你的答案中添加这样的解释,我会投票赞成:)我相信你的回答是正确的。。但我也在想,是否有一些预渲染事件也被触发,布局转换可能是预渲染的一部分…啊哈!我必须使用LayoutTransform而不是RenderTransform。格拉齐!伙计,我很高兴我记性很好。。很高兴我能很快帮助你。。投票赞成。。LOL@SergioTapia
LayoutTransform
之所以有效,是因为它是在呈现文本块之前应用的<代码>渲染转换在文本块渲染并在UI中屏蔽其空间后应用。DJ,如果你想在你的答案中添加这样的解释,我会投票赞成:)我相信你的回答是正确的。。但我也想知道是否有一些预渲染事件也被触发,布局转换可能是预渲染的一部分。。。