【发布时间】:2016-04-27 15:13:57
【问题描述】:
我正在尝试创建锁定和解锁文本框的按钮
我做了一堆阅读,在这个网站上找到了问题:WPF Change button background image when clicked
我接受了答案并想出了这个。
<Button Grid.Row="0" Command="{Binding ChangePnumTextState}" CommandParameter="{Binding ElementName=ButtonCanvas, Path=Source}">
<Canvas Name="ButtonCanvas">
<Canvas.Style>
<Style TargetType="{x:Type Canvas}">
<Style.Triggers>
<DataTrigger Binding="{ Binding IsPNumLocked}" Value="True">
<Setter Property="Source" Value="{StaticResource appbar_lock}" />
</DataTrigger>
<DataTrigger Binding="{ Binding IsPNumLocked}" Value="False">
<Setter Property="Source" Value="{StaticResource appbar_unlock}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Canvas.Style>
</Canvas>
</Button>
我已将这批图标http://modernuiicons.com/ 导入到 xaml 文件中,当我需要时会绘制该文件
我环顾四周,找不到任何使用 SVG 而不是图像的示例
编辑
好的,有人指出 SVG 不适用于 wpf,我可能只是混淆了名称,这是我在资源库中用于获取图标的代码示例
<Canvas x:Key="appbar_3d_obj" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="40" Canvas.Left="18" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,21.7037L 43.9259,18L 58,25.4074L 58,54.2963L 32.8148,58L 18,49.1111L 18,21.7037 Z "/>
</Canvas>
我得到的错误是视觉工作室在 Setters 和 states 中强调了属性
“成员‘源’无法识别或不可访问”
【问题讨论】:
-
Wpf 不支持 SVG。虽然有 Xaml 图标
-
好吧,这可能就是我的意思,我会更新我的问题以反映这一点。谢谢。
-
不管怎样,你的代码看起来没问题,你的问题是什么?
-
@Pikoh oops 也将这一点添加到我的问题中,但是我得到的错误是在设置器中我收到错误“无法识别或无法访问成员'来源'”