B. *_*non 1 xaml windows-phone-8
我改变了我的超链接:
<HyperlinkButton x:Name="hyperlinkButtonManageInvitations" Margin="24"
Grid.Row="1" Tap="HyperlinkButtonManageInvitations_OnTap">
Manage Invitations
</HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)
......对此:
<HyperlinkButton x:Name="hyperlinkButtonManageInvitations"
BorderBrush="DarkOrange" Margin="24" Grid.Row="1"
Tap="HyperlinkButtonManageInvitations_OnTap">
Manage Invitations
</HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)
......没有视觉变化 - 没有添加边框.所以我尝试调整一些更多的属性,如下所示:
<HyperlinkButton x:Name="hyperlinkButtonManageInvitations"
BorderBrush="DarkOrange" Margin="24" Grid.Row="1"
Tap="HyperlinkButtonManageInvitations_OnTap"
BorderThickness="4" OpacityMask="Black">
Manage Invitations
</HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)
......但仍然没有去.添加边框的哪一部分我不喜欢?
我的超链接按钮现在是:
<HyperlinkButton x:Name="hyperlinkButtonManageInvitations" Style="{StaticResource BorderedHyperlinkButtonStyle}" BorderThickness="5" BorderBrush="Red" Foreground="DarkOrange" Margin="24" Grid.Row="1" Tap="HyperlinkButtonManageInvitations_OnTap" Content="Manage Invitations">
</HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)
...我将下面提供的样式添加到App.xaml的部分,但我现在仍然看到有问题的超链接按钮.
它现在在那里 - 它"突然"出现了; 我想xaml渲染器可能会慢慢吸收.或者在使用新添加的样式时,需要首先重新加载项目,或者...... ???
这与HyperlinkButton控件模板有关; 如果你去Blend并创建一个控件模板的副本进行编辑,你会得到这样的东西:
<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" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</Border>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
因此,您可以在此处检查控件BorderBrush和BorderThickness属性没有TemplateBinding.
要解决您的问题,只需复制此样式并将其插入页面/应用程序资源:
<Style x:Key="BorderedHyperlinkButtonStyle" TargetType="HyperlinkButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HyperlinkButton">
<Border Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<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" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
然后,在你想要的带有边框的HyperlinkButton上,设置它是这样的:
<HyperlinkButton Style="{StaticResource BorderedHyperlinkButtonStyle}" BorderThickness="5" BorderBrush="Red" />
Run Code Online (Sandbox Code Playgroud)
根据需要编辑BorderThickness和BorderBrush!
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |