Windows phone 7 WP7的文本内容对齐
我有一个按钮(不是由xaml创建的),我正在为其设置如下内容对齐方式:Windows phone 7 WP7的文本内容对齐,windows-phone-7,Windows Phone 7,我有一个按钮(不是由xaml创建的),我正在为其设置如下内容对齐方式: btn.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left; <Button Width="200" Height="200"> <Button.Content> <TextBlock TextWrapping="Wrap" Text="This is a long text that
btn.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
<Button Width="200" Height="200">
<Button.Content>
<TextBlock TextWrapping="Wrap" Text="This is a long text that fits into button"/>
</Button.Content>
</Button>
但是如果内容太长,文本就会在你看不到文本的地方向右滑动。
按钮在此网格中的全景项目2内创建:
<Grid x:Name="LayoutRoot">
<controls:Panorama Title="Title" SelectionChanged="Panorama_SelectionChanged" FontSize="20">
<!--Panorama item one-->
<controls:PanoramaItem Header="Wall" Margin="40,0,0,0" Name="PIWall">
</controls:PanoramaItem>
<!--Panorama item two-->
<controls:PanoramaItem Header="Messages" Margin="30,0,0,0" Name="PIMail">
</controls:PanoramaItem>
</controls:Panorama>
</Grid>
如何使文本不在网格边距上滑动?好的,要将文本包装到按钮中,可以使用如下XAML:
btn.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
<Button Width="200" Height="200">
<Button.Content>
<TextBlock TextWrapping="Wrap" Text="This is a long text that fits into button"/>
</Button.Content>
</Button>
ContentPanel是一个简单的网格
编辑:修改超链接的帖子按钮
为了在超链接按钮中启用文本换行,您需要编辑超链接按钮的样式。在App.xaml文件中这样定义:
<Style x:Key="HyperlinkButtonStyle" TargetType="HyperlinkButton">
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HyperlinkButton">
<Border Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0" To="0.5" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="TextElement"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="TextElement">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border Background="{TemplateBinding Background}" Margin="{StaticResource PhoneHorizontalMargin}" Padding="{TemplateBinding Padding}">
<TextBlock x:Name="TextElement" TextWrapping="Wrap" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
好的,要将文本包装到按钮中,可以使用如下XAML:
btn.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
<Button Width="200" Height="200">
<Button.Content>
<TextBlock TextWrapping="Wrap" Text="This is a long text that fits into button"/>
</Button.Content>
</Button>
ContentPanel是一个简单的网格
编辑:修改超链接的帖子按钮
为了在超链接按钮中启用文本换行,您需要编辑超链接按钮的样式。在App.xaml文件中这样定义:
<Style x:Key="HyperlinkButtonStyle" TargetType="HyperlinkButton">
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HyperlinkButton">
<Border Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0" To="0.5" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="TextElement"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="TextElement">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border Background="{TemplateBinding Background}" Margin="{StaticResource PhoneHorizontalMargin}" Padding="{TemplateBinding Padding}">
<TextBlock x:Name="TextElement" TextWrapping="Wrap" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
你没有给出任何关于按钮的细节。它是如何创建的?这是一个什么样的孩子?您设置了按钮的哪些参数?不清楚您是希望文本换行、结尾修剪还是简单地使按钮与文本一样大?@Rich Hopkins我用数据编辑了我的文章。@igrali我想换行可以。您正在将按钮添加到面板。面板是scrollviewer的内容。不同的scrollviewer是PIMail的内容(不管是什么)。我看不出它将被添加到您的UI中。这些对象都不在XAML中。btn是一个固定的宽度,所以如果文本太长,你将看不到它。。。这些都是我想到的想法。填写完这些后,可能会有更多问题。您不会给出有关按钮的任何详细信息。它是如何创建的?这是一个什么样的孩子?您设置了按钮的哪些参数?不清楚您是希望文本换行、结尾修剪还是简单地使按钮与文本一样大?@Rich Hopkins我用数据编辑了我的文章。@igrali我想换行可以。您正在将按钮添加到面板。面板是scrollviewer的内容。不同的scrollviewer是PIMail的内容(不管是什么)。我看不出它将被添加到您的UI中。这些对象都不在XAML中。btn是一个固定的宽度,所以如果文本太长,你将看不到它。。。这些都是我想到的想法。这些问题填好后可能会有更多的问题。这听起来很有希望,但行不通。。当我尝试时,按钮似乎是空的,没有内容。只有当我将字符串直接添加到按钮的内容时,我才能看到它。我用代码示例而不是xaml进行了尝试,因为在本例中我没有使用xaml,它不成功的原因是什么?它是一个按钮还是一个超链接按钮有关系吗?你可能知道做同样事情的不同方法吗?@YonatanNir我用HyperlinkButton的详细信息编辑了这篇文章最后我把按钮变成了一个文本块,并用双击事件导航我知道这是一个3年前的答案,但问题可能出在文本块的前景上。把它换成黑色或特定的颜色,问题就应该解决了。这听起来很有希望,但行不通。。当我尝试时,按钮似乎是空的,没有内容。只有当我将字符串直接添加到按钮的内容时,我才能看到它。我用代码示例而不是xaml进行了尝试,因为在本例中我没有使用xaml,它不成功的原因是什么?它是一个按钮还是一个超链接按钮有关系吗?你可能知道做同样事情的不同方法吗?@YonatanNir我用HyperlinkButton的详细信息编辑了这篇文章最后我把按钮变成了一个文本块,并用双击事件导航我知道这是一个3年前的答案,但问题可能出在文本块的前景上。将其更改为黑色或特定颜色,则问题应消失。