1
<Label Grid.Row="1"
       Height="70"
       Margin="2"
       Width="300"
       Content="{l:Translate Key={x:Static l:MultistringTags.SHOW_MENU}}"
       DockPanel.Dock="Bottom"
       FontSize="20"
       FontWeight="Bold"
       Foreground="White">
       <Label.RenderTransform>
           <RotateTransform Angle="270" />
       </Label.RenderTransform>
</Label>

ここでは、グリッド内にあるテキストを回転させたいと考えています。グリッドの列幅はテキストの高さと同じです。この場合、テキストがグリッド幅でカットされて回転せずに描画され、必要な角度に回転された場合のように、テキストの一部のみが表示されます。パネルを試しましたが、同じ結果が得られました。

すべてのテキストを表示するための回避策を知っている人はいますか?テキストは翻訳可能でなければならないため、画像を使用したくありません。

4

2 に答える 2

1

a を使用する必要があるという@nekizalbの回答に加えて、 aLayoutTransformを使用する代わりにそれを行う必要があるRenderTransform理由は、それぞれが発生するタイミングのためです... aLayoutTransformはレイアウトの結果に影響します。

MSDNのUIElement.RenderTransformプロパティページから:

レンダリング変換は、レイアウト サイズまたはレンダリング サイズ情報を再生成しません。Render Transform は、通常、要素にアニメーション化または一時的な効果を適用することを目的としています。たとえば、要素は、フォーカスまたはマウスオーバーされたときにズームしたり、ユーザー インターフェイス (UI) のその部分に目を引くためにロード時にジッターしたりする場合があります。

MSDNのFrameworkElement.LayoutTransformプロパティページから:

RenderTransform とは対照的に、LayoutTransform はレイアウトの結果に影響します。

LayoutTransform が役立つシナリオの例としては、メニュー コンポーネントなどの要素を水平方向から垂直方向に、またはその逆方向に回転する、フォーカスに合わせて要素をスケーリング (ズームイン) する、編集動作を提供するなどがあります。

于 2013-11-14T15:28:16.093 に答える