我使用内部带有图像和标签的UserControl创建了一个自定义复选框。 我想在每次单击时交换已检查和未检查的图像。 到目前为止,我尝试了以下操作

<Image Source="{Binding StateImage}"/>

我有一个名为StateImage的属性

public String StateImage
{
     get
     {
         return is_checked?"{StaticResource Checked}":"StaticResource Unchecked";
     }
}

我的代码无法正常工作,我最终这样做:

public String StateImage
    {
         get
         {
             return is_checked?"/Resources/Images/Checked.png":"/Resources/Images/Unchecked.png";
         }
    }

is_checked变量在UserControl的MouseDown事件下修改

有没有更简单的方法可以在不编写整个路径和文件名的情况下调用图像?

===============>>#1 票数:1 已采纳

您可以在UserControl中将资源定义为strings

<UserControl x:Class="WpfApplication1.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300"
             xmlns:s="clr-namespace:System;assembly=mscorlib">
    <UserControl.Resources>
        <s:String x:Key="Checked">pic.png</s:String>
        <s:String x:Key="UnChecked"></s:String>
    </UserControl.Resources>
    <Grid Background="Yellow">
        <Image Source="{Binding StateImage}"/>
    </Grid>
</UserControl>

private bool is_checked;
public String StateImage
{
    get
    {
        return is_checked ? Resources["Checked"] as string : Resources["UnChecked"] as string;
    }
}

  ask by Mr. Leeds translate from so

未解决问题?本站智能推荐:

2回复

将datacontext字符串属性绑定到StaticResource键

我有一个带有ResourceKey和Caption的List值,这些值都是字符串。 资源是资源字典中定义的实际资源的名称。 这些ResourceKey图标中的每一个都是Canvas的。 然后我有一个列表视图,其中有一个带按钮的datatemplate和按钮下方的文本标题。 我想要做
1回复

如何从绑定对象中的代码以字符串形式(WPF)获取值

我想从代码中的绑定中获取值并将其用作字符串。 我怎样才能做到这一点? 顺便说一句:我希望在检索此值时调用附加到绑定的转换器。
1回复

WPF设置程序属性未从StaticResource获取绑定

我有一堆ListBoxItems,并且希望能够在右键单击它时将其删除。 因此,我有一个上下文菜单声明为静态资源,并且该资源被用作ListBoxItem样式的Setter属性之一: 使用此代码,当我右键单击ListBoxItem时,菜单显示就很好了: 但是,单击每个菜单项(“
2回复

将DatagridColumn绑定到StaticResource,指向WPF中的ObservableCollection

在GridView中,可以将selectedItemBinding路径设置为DataGrid.ItemsSource的属性,手动将列ItemsSource绑定到Enum,如下所示: ... ... ... 我正在尝试做的是将列类似地绑定到ObservableCol
2回复

WPF以字符串形式检索图像路径

我有一个很少有图像项的ListView。 我想获取在字符串中单击的项目路径(图像),并将其作为VALUES进入数据库。 谢谢。 XML格式 按钮功能
2回复

如何绑定字符串形式的字符串列表?

这是数据绑定不起作用的代码。 XAML 现在的CS代码 现在如何将字符串绑定到Textblock元素?
2回复

如何将简单的静态字符串绑定到WPF标签

我有一个带有公共静态类的C#.NET 4.5 WPF应用程序。 在该类中,我有一个公共静态字符串。 我想要的非常简单,我想将该静态字符串绑定到WPF Label ,因此无论何时更新该字符串,WPF Label也会得到更新。 如何以最简单,最简单的方法实现这一目标 下面的静态类
1回复

WPF中用于绑定文本的字符串格式

说我有一个静态文本资源 然后我想像这样在WPF中使用此文本 但是将两个值绑定到它,我该怎么做?
1回复

将WPF DatePicker绑定到字符串属性[重复]

这个问题已经在这里有了答案: 更改WPF DatePicker的字符串格式 8个答案 我想将DatePicker绑定到viewmodel的字符串属性。 问题是设置正确的字符串格式。 将日期存储在字符串属性中是特定于问题的。 绑定工作正常,但字符串格式除外。
4回复

WPF绑定字符串属性和Button.Content

我想用Button.Content绑定字符串属性。 但为什么它不起作用? 数据类: 逻辑代码: XAML: