- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我尝试执行以下操作时,“找不到名为‘mrg’的资源。资源名称区分大小写。”出现异常:
主窗口.xaml:
<Window.Resources>
<Thickness Left="0"
Right="1"
Bottom="2"
Top="3"
x:Key="mrg" />
</Window.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:UserControl1 />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
主窗口.xaml.cs:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<string> source = new List<string>()
{
"item1",
"item2",
"item3",
"item4",
"item5",
};
DataContext = source;
}
}
和 UserControl1.xaml:
<Grid>
<TextBlock Text="{Binding}" Margin="{StaticResource mrg}" />
</Grid>
根据msdn article :
静态资源查找行为
查找过程在设置属性的元素定义的资源字典中检查请求的键。
查找过程然后向上遍历逻辑树,到达父元素及其资源字典。这一直持续到到达根元素。
接下来,检查应用程序资源。应用程序资源是由 WPF 应用程序的 Application 对象定义的资源字典中的那些资源。
因此,由于第 2 步,必须找到资源。但是,正如我在捕获异常时在 Locals
窗口中看到的那样,UserControl1.Parent == null
.
我对这个问题很困惑。我能解决的方法是把资源放到Application层。
我的问题是:为什么找不到 StaticResource?
最佳答案
DataTemplate 形成了自己的逻辑树,与 ItemsControl 的逻辑树断开连接。因此,遍历逻辑树的查找将找不到资源。
我无法在 MSDN 中找到引用,只能找到 this article on CodeProject ,它写着:
The elements that are part of an expanded template, hereafter referred to as "template elements", form their own logical tree which is disconnected from the logical tree of the object for which they were created.
使用 DynamicResource
而不是 StaticResource
将解决这个问题。但是我不能确切地说出为什么。也许可以在 Static and Dynamic Resources 的静态资源查找行为 和动态资源查找行为 部分找到解释。 ,但我不确定。
关于wpf - 为什么在这种情况下无法解析 StaticResource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36502056/
我正在尝试正确设置我的样式。因此,我创建了一个外部 ResourceDictionary对于所有常见的样式属性,我在其中定义了一个默认字体系列,如下所示: Impact 这样,当我更改这一行时,家庭会
我在 App.Resources 中创建了一个 mycustomItemsPanel .... Some code here 并以这种方式将其提供给 UICon
我有一个异常(exception) “找不到名为‘mrg’的资源。资源名称区分大小写。” 当我尝试执行以下操作时: 主窗口.xaml:
我的 Window.Resources 中有以下 StaticResource 我在窗口内有一个用户控件。我需要在我的用户控件中引用上述资源,我该怎么做?我无法将资源移动到单独的字典文件。 上面给
我的 Window.Resources 中有以下 StaticResource 我在窗口内有一个用户控件。我需要在我的用户控件中引用上述资源,我该怎么做?我无法将资源移动到单独的字典文件。 上面给
基本上,我想将所有 XAML 资源保存在外部程序集中(用于我的样式)。我在我的应用程序中引用了这个外部程序集。 是否与附属程序集或诸如此类的东西有关,或者我该如何访问这些样式,以便我的应用程序仍然可以
当我尝试执行以下操作时,“找不到名为‘mrg’的资源。资源名称区分大小写。”出现异常: 主窗口.xaml:
我想在 sytacklayout 中使用特定的 Padding 构建几个页面。我不想把它写在每一页上。考虑到我将来是否要更改它,它的设计并不是很好。有没有办法在静态资源中定义填充?这样我就可以在一个地
我正在将 Telerik 的 RadControls 用于带有隐式样式的 WPF。以下样式定义于 Themes/Windows8/Telerik.Windows.Controls.RibbonView
在 XAML 中,我这样做: 我如何在代码隐藏中做同样的事情? 最佳答案 页面级资源对象能够查找本地、应用级、静态和主题资源。这意味着您只需执行以下操作: foo2.Style = this.Res
我有两个文本框,它们使用相同的 StaticResource 作为前景色。 当我应用更改第一个 TextBox 颜色的动画时,第二个 TextBox 上的颜色也会更改。 如果我不使用 StaticRe
比方说,我有这样的东西(在 MainPage.xaml 中): 然后,我想将该 StaticResource 样式应用于我动态创建的 Tex
我想在 xaml 文档的根元素中使用 StaticResource。 但 MSDN 说: Static resource references from within a resource dicti
从 ResourceDictionary 中定义的 DataTemplate 内部引用 StaticResources 时,我遇到了一些奇怪的行为。 在此示例中,我使用 ResourceDiction
在从 .net 3.5 升级到 .net 4 的过程中,我是否遗漏了一些东西,因为我看到了似乎与系统目标背道而驰的错误行为。 我正在尝试使用一些示例来构建一个简单的 MVVM 库以用于工作。我在 Tw
我在 App.xaml 的 ResourceDictionary 中有一个字符串。 .Images.logoEvo.png 我怎样才能像这样在另一个 StaticResource 中使用它: Ima
请帮助我如何创建一个 MarkupExtension 看起来像 wpf 的 StaticResource,我有: 我自己的类(class): public class Item{ public str
当我尝试从代码隐藏列表中绑定(bind)静态资源的名称时,我遇到了一个大问题。 public IDictionary Categories = new Dictionary(); Categories
我正在编写 XAML/WPF,有时使用对象元素语法来引用静态资源: 这似乎与 StaticResource Markup Extension docs 一致在某些情况下,这是我所知道的唯一选择,例如
给出下面的“部分”xaml: 我的转换器类“StatusTypeNameToBrushConverter.cs”
我是一名优秀的程序员,十分优秀!