我在我的應用程序中使用了一個自定義按鈕控件,並且每個人的textwrapping都設置爲用於翻譯目的。在進行測試時,我發現按照我的說明書,一些字符串以各種語言進行包裝,但按鈕高度保持不變,因此第二行文本從視圖中切斷。現在我從ResourceDictionary中的自定義按鈕樣式中設置xaml中的每個按鈕樣式,但我無法弄清楚如何從ResourceDictionary相應地調整按鈕高度(在這種情況下,我只需要一次更改按鈕樣式,而不是手動在我可以做的每一個按鈕上)。我將如何去更新我的資源字典中的自定義按鈕樣式,以便高度自動根據文本的包裝進行調整?按鈕實現的示例如下:如何在包裝文本時調整自定義按鈕高度
MainPage.xaml中
<Button x:Name="btnUseEmailAddress" Style="{StaticResource GlassButton}" Click="btnUseEmailAddress_Click" Margin="0,10">
<Button.Content>
<TextBlock TextWrapping="Wrap" Text="{Binding Path=LocalizedResources.MainPage_Contacts_UseContactsEmailAddress, Source={StaticResource LocalizedStrings}}"/>
</Button.Content>
</Button>
ResourceDictionary.xaml
<Style x:Key="GlassButton" TargetType="Button">
<Setter Property="FontSize" Value="25.33" />
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}" />
<Setter Property="Height" Value="60"/>
<Setter Property="Padding" Value="10,3,10,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="ButtonBorder"
CornerRadius="30"
BorderThickness="4,4,4,4"
Background="#AA000000"
BorderBrush="#99FFFFFF"
RenderTransformOrigin="0.5,0.5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="1.7*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" CornerRadius="23,23,0,0">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#08FFFFFF" Offset="0"/>
<GradientStop Color="#88FFFFFF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
</Border>
<ContentPresenter x:Name="ButtonContentPresenter"
VerticalAlignment="Center"
Grid.RowSpan="2"
HorizontalAlignment="Center"/>
</Grid>
</Border>
<!--<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="RenderTransform" TargetName="ButtonBorder">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="0.9" ScaleY="0.9"/>
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>-->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
要注意,玻璃按鈕樣式爲目前看起來不錯,到底是什麼我想要的,除了文本被包裝。我可以使用<Button x:Name="btnUseEmailAddress" Height="Auto"...
將按鈕高度調整爲在MainPage.xaml中自動調整,但是我必須爲每個按鈕執行此操作(這非常棒!)。那麼有沒有什麼方法可以在玻璃按鈕風格中實現這一點?