我正在創建一個具有多語言支持的獨立WPF應用程序。我已經找到了一些很好的資源(主要是關於如何)根據需要存儲和訪問字符串。這部分非常簡單直觀,但我很在乎如何處理屏幕布局問題。在WPF/XAML中使用多語言支持處理佈局問題的最佳方式是什麼?
我使用一些自定義的圖片對皮膚了我的按鈕等。例如應用程序,在這裏與內一些文本的按鈕:
<Button
Canvas.Left="33"
Canvas.Top="484"
Style="{StaticResource SmallButtonBase}">
<TextBlock
FontSize="20"
FontWeight="Bold"
TextAlignment="Center" FontFamily="Helvetica">
Enter
</TextBlock>
</Button>
現在這裏是相同的按鈕從另一種語言的文字:
<Button
Canvas.Left="33"
Canvas.Top="484"
Style="{StaticResource SmallButtonBase}">
<TextBlock
FontSize="20"
FontWeight="Bold"
TextAlignment="Center" FontFamily="Helvetica">
Enterenschtein
</TextBlock>
</Button>
所以我的問題是:什麼是防止這種「溢出」情況的好方法。我想讓XAML自動處理需要的任何字體大小調整或縮進,以便我不必爲我支持的每種語言調整UI。
任何見識都被讚賞!
p.s.這裏是SmallButtonBase的XAML。它基本上定義了當按鈕具有焦點或被按下時發生的情況。每種情況都使用不同的圖像。
<Style x:Key="SmallButtonBase" TargetType="Button">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="Container">
<Image x:Name="Img" Source="/Resources/Elements/Buttons/10.png" Margin="6" />
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter TargetName="Img" Property="Source" Value="/Resources/Elements/Buttons/11.png" />
<Setter TargetName="Img" Property="Margin" Value="0" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsKeyboardFocused" Value="True" />
<Condition Property="IsPressed" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Img" Property="Source" Value="/Resources/Elements/Buttons/12.png" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您應該發佈定義SmallButtonBase樣式的代碼。解決方案將採用這種風格。我想你有一個硬編碼的寬度和高度,他們應該是'自動' – 2010-04-23 16:05:38