我再次提出另一个关于Windows Phone的问题。
我刚创建了一些自定义按钮,并将它们用作按钮上的背景。我还创建了一个灰色按钮,显示为禁用按钮。
但如果我禁用button1.isEnabled = false,背景就会消失
在网上搜索我找到了一种使用Style标签的方法,但我之前从未使用过。我尝试了但是,它离开了我的问题,有人可以给我一个例子吗?我的代码:
<Button x:Name="btSalvar" Content="Salvar Cor" Margin="68,477,70,0" VerticalAlignment="Top" BorderBrush="{x:Null}" BorderThickness="0" Height="100" Click="btSalvar_Click" ClickMode="Press" IsEnabled="True" Foreground="White">
<Button.Style>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="/Imagens/Buttons/ButtonGray01.png"/>
</Trigger>
</Style.Triggers>
</Button.Style>
</Button>
有没有办法在Windows Phone 8.1中使用Style或其他方式在IsDisabled = false的按钮上设置自定义背景?
答案 0 :(得分:3)
据我所知,样式触发器是WPF的东西,而不是WP8.1 / WIN8.1
因此,您必须使用可视状态管理器来完成您想要的操作。因此,请转到UI Designer,然后转到VS2013左侧的文档大纲。找到您的按钮,右键单击&gt;编辑模板 - &gt;编辑副本。这将为该特定按钮创建自定义样式。
您想要更改按钮的禁用状态,请将其更改为.....
...
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonDisabledForegroundThemeBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Border">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonDisabledBorderThemeBrush}"/>
</ObjectAnimationUsingKeyFrames>
<!-- here is where we need to change -->
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(ImageBrush.ImageSource)" Storyboard.TargetName="Border">
<DiscreteObjectKeyFrame KeyTime="0" Value="Assets/YOUR_IMAGE.png"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
....
现在,如果您将新样式设置为按钮的样式,您将获得所需的内容。
答案 1 :(得分:0)
在法语界面
VS2013左侧的文档大纲。找到您的按钮,右键单击&gt;编辑模板 - &gt;编辑副本
菜单格式/修饰符lemodèle/ Modifier une copie。 Cela rajoute dans le xaml le