Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wpf共享资源字典文件参数?_Wpf_Styles_Styling - Fatal编程技术网

wpf共享资源字典文件参数?

wpf共享资源字典文件参数?,wpf,styles,styling,Wpf,Styles,Styling,如果所有样式和转换器都存储在共享资源字典文件(Styles.xaml)中,并且该文件是从各种窗口使用的 是否可以将参数传递到该文件,并将该参数传播到转换器 我正在寻找一种传递“origin”类型参数的方法,以便转换器能够知道它们是从哪个地方使用的?只是提示当前正在使用转换器的窗口/网格 有关带参数的转换器,请参阅本文。我假设您在资源字典中定义了转换器资源 我想知道这样做是否有效: 在每个窗口或用户控件的声明中添加对系统命名空间的引用 xmlns:sys="clr-namespace:S

如果所有样式和转换器都存储在共享资源字典文件(Styles.xaml)中,并且该文件是从各种窗口使用的

是否可以将参数传递到该文件,并将该参数传播到转换器


我正在寻找一种传递“origin”类型参数的方法,以便转换器能够知道它们是从哪个地方使用的?只是提示当前正在使用转换器的窗口/网格

有关带参数的转换器,请参阅本文。我假设您在资源字典中定义了转换器资源


我想知道这样做是否有效:

在每个窗口或用户控件的声明中添加对系统命名空间的引用

     xmlns:sys="clr-namespace:System;assembly=mscorlib"
然后在“资源”部分设置如下内容:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
            <sys:String x:Key="WinConvertParam">IDTextForThisWindow</sys:String>
    </ResourceDictionary>
</Window.Resources>
{Binding SomeProperty, 
         Converter={StaticResource thatConverterIWrote}, 
         ConverterParameter={StaticResource WinConvertParam}}
…然后,转换类中的Convert或ConvertBack方法就会知道正在使用它们的窗口,只要您在不同的文件中更改该
的值


你觉得怎么样?

不确定你在共享资源字典中所说的“转换器”是什么意思。当我在XAML和WPF的上下文中看到这个术语时,我想到了IValueConverter。是别的吗?是的。伊瓦鲁转换器。Convert有一个可选参数。我希望能够通过resourcedictionary文件传递它是的,这篇文章是我如何发现转换器参数的。但它没有提到我的问题的任何解决方案