使用 DependencyProperty 将 ImageBrush 绑定到模板

2023-12-20

我正在尝试创建一个特殊的按钮,根据系统的前景色为图像着色。解决方案似乎是使用图像作为不透明蒙版来获取颜色,当我像这样直接设置图像时它会起作用:

<Grid>
  <Rectangle x:Name="ImageForeground" Height="48" Width="48" 
    Fill="{StaticResource PhoneForegroundBrush}" >
    <Rectangle.OpacityMask>
      <ImageBrush Stretch="Fill" ImageSource="/icons/play.png"/>
    </Rectangle.OpacityMask>
  </Rectangle>
</Grid>

但是,一旦我尝试使用图像精简版的 DependencyProperty 进行模板化:

public static readonly DependencyProperty ImageProperty  =
  DependencyProperty.Register("Image", typeof(ImageSource), 
                              typeof(RButton), null);  

然后在 XAML 中像这样:

<Grid>
  <Rectangle x:Name="ImageForeground" Height="48" Width="48" 
    Fill="{TemplateBinding Foreground}" >
    <Rectangle.OpacityMask>
      <ImageBrush Stretch="Fill" ImageSource="{TemplateBinding Image}"/>
    </Rectangle.OpacityMask>
  </Rectangle>
</Grid>

我收到一条错误消息:

object of type 'System.Windows.CustomDependencyProperty' 
  cannot be converted to type 'System.Windows.DependencyProperty'

ImageProperty 没问题,因为我测试了将其绑定到图像,而不是像这样

<Image Source="{TemplateBinding Image}" Width="48" Height="48" />

有任何想法吗?我的直觉表明我如何定义 DependencyProperty,但我不知道如何继续。


The 图像画笔 http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.media.imagebrush%28v=vs.105%29.aspx不继承自 FrameworkElement,因此它不能是 TemplateBound 或 Data Bound。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 DependencyProperty 将 ImageBrush 绑定到模板 的相关文章

  • 是否可以在 Silverlight 中建立 WebSocket 连接?

    是否可以在 Silverlight 中建立 WebSocket 连接 或者如果没有 有谁知道这是否计划在未来版本中 表面上是的 事实上 它已被用来为不支持 WebSocket 的浏览器提供后备解决方案 请参阅以下内容以获取更多信息 但请注意
  • 使用 ICollectionView 过滤 ObservableCollection

    I have ObservableCollection绑定到dataGrid现在我想过滤我看到需要使用的呈现数据ICollectionView但我不知道如何添加ICollectionView和我的MVVM图案 我的代码简化如下 public
  • 两个 dll 中都存在类型“System.Threading.Tasks.Task

    编译代码时出现以下错误 类型 System Threading Tasks Task 存在于 c Go WP7CodeSamples Pradna packages AsyncAwaitCTP 1 0 lib sl4 wp71 AsyncC
  • 列表框未使用绑定填充

    我正在尝试使用 mvvm 模式将现有程序转换为 c wpf 第一部分是选择要处理的文件的文件夹位置并填充列表框 我在这里找到了一个使用 Mvvm Light 的示例 WPF OpenFileDialog 与 MVVM 模式 https st
  • 数据绑定+动态透视

    我在将数据透视项动态添加到模板化和数据绑定数据透视时遇到问题 使用的类 稍微简化以使其快速理解 class Menu string Name List
  • Silverlight 中的应用程序范围字体资源

    我想看看是否可以在 Silverlight 控件中使用应用程序范围的字体 这些字体可以在 application resources 中设置 然后在整个应用程序中使用 他们不需要指定字体的其他内容 例如粗体或斜体 只需指定名称即可 大多数情
  • 启动时运行“浏览器外”Web 应用程序?

    我已经熟悉了 浏览器外 Web 应用程序的新概念 最近的 Silverlight JavaFX Adobe AIR 等都支持该应用程序 最近在听一个podcast http www hanselman com blog Hanselminu
  • 如何在 MVVM 中播放声音和动画

    我读过很多关于播放声音 动画的最佳方式的博客 但如果可能的话 我希望看到一个关于如何完成此操作的简化示例 以便我更好地理解 所以根据我对 MVVM 的理解 视图 gt 声音和动画 ViewModel gt 如果某个值是 true 我想在视图
  • WPF 和 Silverlight 应用程序有什么区别?

    WPF 和 Silverlight 应用程序有什么区别 它们是一样的吗 WPF 基于桌面 CLR 即fullCLR 的版本 Silverlight 基于更小 更紧凑的 CLR 它提供了出色的体验 但不具备 CLR 的全部功能 它还有一个小得
  • 如何在 Xamarin Forms 中制作卡片式 ListView

    我正在尝试根据 ahaliav Fox 的 xaml 示例在 Xamarin Forms 中制作基于卡片的 listViewhere https stackoverflow com questions 30807313 how to add
  • 双击数据网格时出现问题

    我的 C 代码中的数据网格有以下内容
  • WP7 中的浏览器屏幕截图为位图

    我正在尝试在 Windows Phone 上将给定 URL 的屏幕截图作为位图图像 WebBrowser类似乎没有DrawToBitmap方法 有关如何使其正常工作的任何指示 Use WriteableBitmap渲染WebBrowser控
  • wp7 上的折线图

    我正在使用 amCharts 及其 SerialChart 与 LineGraph 相结合 我已经让它以这种方式工作
  • WPF DataGrid 双向绑定

    我有财产UserSet其中包含来自ObservableCollection
  • 获取我“单击”/“mousedown”的元素的名称

    我有一个页面 其根元素是一个名为的网格Root 我有很多控件 比如TextBlock TextBox Grid Rectangle Border等等 谁是孩子Root 现在 我想要一个MouseDown or PreviewMouseDow
  • 更改 UWP 评级控件的大小和间距

    有一个新的评级控制 https learn microsoft com en us uwp api windows ui xaml controls ratingcontrol在 UWP 中 您可以将评级显示为一系列星星 我想知道如何改变星
  • 良好的 WPF 或 silverlight windows 小工具示例

    有人有 WPF 或 silverlight windows 小工具的好例子吗 诺兰多02 您好 我在网上看到了一些侧边栏小工具演示和教程 我将在这里列出它们以供您审查 希望其中一些能引起您的注意 并为您的努力提供帮助 WPF http ww
  • WP7模拟器的独立存储位于PC上的哪里?

    当我们使用模拟器并将文件存储在隔离存储中时 文件实际存储在计算机上的哪里 我的意思是路径 如果 模拟器 指的是模拟器 那么该数据不会存储在主机 PC 上的 真实 文件夹中 模拟器 为了论证 是一个虚拟机 因此它的整个文件夹结构是单独存储的
  • 模拟器中的 Wp8 应用程序部署错误 0x81030110

    I was developed wp8 app and signed my app with enterprise certificate using powershell After successfully signed and i w
  • WP7中加粗的ProgressBar,怎么样?

    我正在制作一个应用程序 它有一个计数器和一个代表剩余时间的进度条 因此如果计数器达到 50 则进度条值为 50 到目前为止一切顺利 我制作了一个计数器总计的进度条动画并开始 我的问题是 如何使进度条变粗 线条本身太小 我的应用程序的 主要吸

随机推荐