问题标签 [staticresource]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF ListBox ItemsSource StaticResource/Binding 问题
给定以下代码:
在这个例子中,
给我一个错误,抱怨它无法绑定到“CollectionViewSource”对象。
但另一个列表框:
结合得很好。
所以我的问题是为什么一个有效而另一个无效?最后,不是两个 ItenSources 都设置为相同的“CollectionViewSource”对象吗?
谢谢你。
wpf - DynamicResource 不工作,但 StaticResource 可以吗?
这是场景:
1)打开Visual Studio 2008,新建项目...
2)选择WPF自定义控件库作为项目类型
3) 打开位于 Themes 文件夹中的 Generic.xaml 资源字典
4)添加一个简单的画笔,例如:
< SolidColorBrush x:Key="BackgroundBrush" Color="Yellow" />
5) 将嵌套 Borer 控件的 Background 属性从
背景="{模板绑定背景}"
至
背景="{DynamicResource BackgroundBrush}"
现在当你在任何项目中编译和使用这个控件时,背景不会是黄色的。但是,如果您将背景属性更改为 StaticResource
背景="{StaticResource BackgroundBrush}"
......它会工作。为什么是这样?为什么 StaticResource 有效,DynamicResource 无效???
wpf - 当 WPF 元素具有 StaticResources 时,如何通过它们的类型实例化它们?
我需要通过反射为设计器实例化 WPF 类型(例如,UserControl 或 Page)。我遇到的问题是,当我尝试使用 Activator.CreateInstance 实例化这些时,我得到一个TargetInvocationException ,它最终包装了由StaticResource标记扩展引发的异常。
澄清:这些类型在运行时加载的不同程序集中!
显然,Activator.CreateInstance无法实例化使用{StaticResource XXX}标记扩展的类型,即使在类型定义中定义了静态资源也是如此。
因此,如果您只有以下类型的定义(类型 + xaml 文件):
您将如何在运行时启动它?
顺便说一句,要求您使用 DynamicResource 是不可接受的。Visual Studio 需要这个吗?然而,VS 能够启动您的 WPF 框架元素的副本并将其粘贴到设计器中。
这是一个演示该问题的示例应用程序(beta 2,抱歉)。
http://cid-f8be9de57b85cc35.skydrive.live.com/self.aspx/Public/ResourcesGoKaboom.zip
该应用程序尝试在其资源字典中加载带有绘图的页面。我尝试使用Application.LoadComponent和Activator.CreateInstance动态加载它,但它们都失败了。
好的,上面的例子没有问题。问题是我在元素的属性中使用了 StaticResource,它引用了在该元素中定义的资源。
让我感到震惊的是,这在视觉工作室中有效。 所以在设计师那里,一切看起来都还不错,但 IRL 都是梨形的。恕我直言,这是一个错误,我已将其报告为:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=519244
不确定它是否是 VS 的失败……失败,或者 StaticResource 扩展是否在 VS 中工作但不是 IRL。
silverlight - 尝试使用 ResourceDictionary,但其中的样式显示为未找到
我有一个名为 MyClassLibrary 的 Silverlight 类库。
在其中,我有一个名为 MyControl 的用户控件。
在控件中,我定义了用户资源:
该控件使用如下样式:
这一切都很完美,ComboBox 提供了正确的样式,所以我知道样式写得正确。
我真正想要的是将样式放在资源字典中,以便该程序集中的多个不同控件可以使用它。所以我在同一个程序集中创建了一个资源字典。我称之为 ResourceDictionary.xaml。
我将样式定义从我的用户控件移动到资源字典。
那么资源字典看起来像这样:
控件的用户资源现在如下所示:
并且控件仍然以与以前完全相同的方式使用样式。
现在我知道它正在查找 ResourceDictionary.xaml 文件,因为我尝试将“Source”属性更改为 NonExistentFile.xaml,但它抱怨找不到该文件。它不会对 ResourceDictionary.xaml 提出投诉,所以我认为它正在找到它。
但是,当我运行该应用程序时,我收到“找不到具有名称/键组合框样式的资源”的错误。
我究竟做错了什么?这看起来很简单,但它不起作用。
提前感谢您能给我的任何帮助。
wpf - DynamicResource 而不是 StaticResource 是否有显着的性能成本?
我们的设计师正在使用 Blend 来设计我们的 WPF 应用程序。当他为属性选择本地资源时,Blend 会将它们应用为 a{DynamicResource}
而不是 a {StaticResource}
。我的猜测是 Blend 这样做是因为它使应用程序能够在运行时重新设置主题,而无需重新启动它。
我的问题是:这种额外的查找是否有显着的性能成本?我们是否应该要求设计师返回并手动将那些 Dynamics 更改为 Statics?
这是一个很好的 SO 问题,解释了类型之间的区别:WPF 中的 StaticResource 和 DynamicResource 有什么区别?
wpf - 是否可以为 WPF 中的静态资源提供类型转换器?
我有一个新手 WPF 问题。
想象一下我的用户控件有一个这样的命名空间声明:
我有这样的用户控件资源:
然后在我的用户控件中的某个地方我有这个:
这将导致错误,因为Today
定义为整数资源,但 Text 属性需要一个字符串。这个例子是人为的,但希望能说明这个问题。
问题是,除了使我的资源类型与属性类型完全匹配之外,有没有办法为我的资源提供转换器?用于绑定或类型转换器的 IValueConverter 之类的东西。
谢谢!
.net - 资源无法解析(VS 2010 RC)
我有 WPF 4 应用程序,它有许多在其子控件中共享样式的用户控件。所以我在我的 App.xaml 中创建了许多样式作为 . 例如:
然后在我的 UserControls 中,我使用 StaticResource 来引用它们,例如:
这一切都很好。问题是 Visual Studio 2010 RC 在 StaticResource 引用下放了一个蓝色波浪线并说:资源“ViewTitle”无法解决。
那是怎么回事?这是 Visual Studio 的问题还是我做错了什么?
wpf - WPF - 绑定 ItemsSource 时 ListBox 忽略样式
我在 WPF 中创建了样式化的 ListBox,以便将其呈现为复选框列表。
当我手动填充 ListBox 的项目时,样式效果很好。但是,当我将 ListBox 的 ItemsSource 绑定到静态资源(包含所需项目的 ItemsControl)时,样式将完全删除。
这里的风格:
这是正确显示样式的 ListBox 的代码:
这是忽略样式的 ListBox 的代码:
希望有人可以提供帮助 - 我对这一切都很陌生,并且已经尝试了我能想到的所有内容,但我读过的所有内容都让我相信设置 ItemsSource 应该与手动设置项目具有相同的结果,所以我可以'看不出这不起作用的任何原因。
谢谢,
在
wpf - 如何将控件的属性设置为 xaml 中函数的地址?
我有一个具有“过滤器”属性的控件,该属性需要一个定义如何过滤控件内容的函数。到目前为止,我在后面的代码中设置了过滤器:
MyControl.Filter = AddressOf Filters.MyFilter
在此示例中,MyFilter 是 Filters 类中的一个共享函数,具有以下签名:
Public Shared Function MyFilter(ByVal obj As Object, ByVal text As String) As Boolean
我想在 xaml 中设置它。我正在考虑将 Filters.MyFilter 设置为静态资源并以这种方式设置:
...Filter="{StaticResource myFilter}"/>
但我不能将 Filters.MyFilter 设置为静态资源。关于如何实现这一目标的任何想法?
谢谢,
wpf - WPF DataGrid:每行资源?
有没有办法在 DataGrid 中为每行设置一个 StaticResource,从所有列访问它?
更新
我的目标是拥有 3 个 ComboBox 列,而实际上只有最后一个绑定到行项目。
例如,DataGrid 表示项目列表。我有Category->Vendor->Style->Finish ComboBoxes,但这些仅用于导航辅助,实际上,Item 类只有“Finish”关系。因此,如果每行有一个 StaticResource,我可以设置 ComboBox 的 ItemsSource 和 IsSynchronizedWithCurrentItem 道具,这将自动工作。
非常感谢。