2009-07-10 15 views
1

Silverlightインターフェイスで作業しています。問題のテキストは、ユーザーが選択した言語に応じて、実行時に言語ファイルから追加されます。文字列の長さが言語によってかなり異なることがあるので、私はこれに最も近づける方法について少し困惑します。これは見た目です。XAMLのダイナミックテキストのサイズを最適に調整する方法

alt text

問題のスタックパネルには、色付きのブロックであり、ラベルが運転する、アクティブな作業、可用性とブレイクは、その長さは変更することができます文字列です。 XAMLは現在このようになっています。

<StackPanel x:Name="StatusTotals" Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,5"> 
    <Border x:Name="DrivingBorder" Background="#80FF0000" BorderBrush="Black" BorderThickness="1" Opacity="1" CornerRadius="5,0,0,5" Margin="0,0,-1,0"> 
    <StackPanel Orientation="Vertical" Margin="5,1" VerticalAlignment="Center"> 
     <TextBlock Text="Driving" Tag="dttlDriving" HorizontalAlignment="Center"/> 
     <TextBlock x:Name="DrivingDuration" Text="00:00" HorizontalAlignment="Center"/> 
    </StackPanel> 
    </Border> 
    <Border x:Name="ActiveWorkBorder" Background="#8000FFFF" BorderBrush="Black" BorderThickness="1" Opacity="1" Margin="0,0,-1,0"> 
    <StackPanel Orientation="Vertical" Margin="5,1" VerticalAlignment="Center"> 
     <TextBlock Text="ActiveWork" Tag="dttlActiveWork" HorizontalAlignment="Center"/> 
     <TextBlock x:Name="ActiveWorkDuration" Text="00:00" HorizontalAlignment="Center"/> 
    </StackPanel> 
    </Border> 
    <Border x:Name="AvailabilityBorder" Background="#80FFFF00" BorderBrush="Black" BorderThickness="1" Opacity="1" Margin="0,0,-1,0"> 
    <StackPanel Orientation="Vertical" Margin="5,1" VerticalAlignment="Center"> 
     <TextBlock Text="Availability" Tag="dttlAvailability" HorizontalAlignment="Center"/> 
     <TextBlock x:Name="AvailabilityDuration" Text="00:00" HorizontalAlignment="Center"/> 
    </StackPanel> 
    </Border> 
    <Border x:Name="BreakBorder" Background="#8000FF00" BorderBrush="Black" BorderThickness="1" Opacity="1" CornerRadius="0,5,5,0"> 
    <StackPanel Orientation="Vertical" Margin="5,1" VerticalAlignment="Center"> 
     <TextBlock Text="Break" Tag="dttlBreak" HorizontalAlignment="Center"/> 
     <TextBlock x:Name="BreakDuration" Text="00:00" HorizontalAlignment="Center"/> 
    </StackPanel> 
    </Border> 
</StackPanel> 

私はそれは私が欲しいとすでに動的にリサイズされ、その上描かれた定規、より広いだ場合は、このパネルのサイズを小さくできるようにしたいと思いますが、ラベルの下の値はに滞在したいと思います読みやすさのためのサイズです。

このアプローチにはどのような方法が最適でしょうか?私は、ラベルのFontSizeプロパティの設定やScaleTransformの使用を検討しましたが、これらのうちどれが最善の方法であるかはわかりません。実際にフォントサイズを変更せずにパネルが採用する幅を導出し、ActualWidthをテストする方法はありますか?もし私がこれを行うことができれば、この作業が楽になるでしょう。

答えて

3

私はあなたの質問を完全に理解しているかわかりません。

トップ親のスタックパネルには、xの制限が与えられていますか?それは、ラベルの長さのために、これより大きい合計幅を子供が求めていますか?

この場合、ViewBoxコントロールのラベルをラップします(Silverlightツールボックスlibraryにあります)。このコントロールは、使用可能なサイズになるように内容を拡大/縮小します。

+0

これは完璧です。それはSilverlightの私の問題の一部です。何が入手可能かを知るだけです。 –

関連する問題