Nol*_*rin 5 wpf resources xaml antialiasing
我试图在 XAML 中为资源添加别名,如下所示:
<UserControl.Resources>
<StaticResourceExtension x:Key="newName" ResourceKey="oldName"/>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
oldName仅指类型为 的资源Image,在 中定义App.xaml。
据我了解,这是执行此操作的正确方法,并且应该可以正常工作。然而,XAML 代码给了我一个非常无用的错误:
"The application XAML file failed to load. Fix errors in the application XAML before opening other XAML files."
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停StaticResourceExtension在代码中的行(具有波浪形下划线)上时,会出现此情况。实际错误列表中还会生成其他几个错误,但似乎相当无关紧要且无意义(例如“当前上下文中不存在名称“InitializeComponent””之类的消息),因为删除该行后它们都会消失。
我完全被难住了。为什么 WPF 会抱怨这段代码?关于解决方案有什么想法吗?
注意:我在 .NET 3.5 SP1 中使用 WPF。
更新 1:
我应该澄清我确实收到了编译器错误(错误列表中的上述消息),所以这不仅仅是设计者的问题。
更新2:
这是完整的相关代码...
在 App.xaml 中(在 下Application.Resource):
<Image x:Key="bulletArrowUp" Source="Images/Icons/bullet_arrow_up.png" Stretch="None"/>
<Image x:Key="bulletArrowDown" Source="Images/Icons/bullet_arrow_down.png" Stretch="None"/>
Run Code Online (Sandbox Code Playgroud)
在 MyUserControl.xaml 中(在 下UserControl.Resources):
<StaticResourceExtension x:Key="columnHeaderSortUpImage" ResourceKey="bulletArrowUp"/>
<StaticResourceExtension x:Key="columnHeaderSortDownImage" ResourceKey="bulletArrowDown"/>
Run Code Online (Sandbox Code Playgroud)
当然,这些是产生错误的行。
尽我所能,我无法重现您的问题。我认为比您发布的代码更重要。这对我来说效果很好:
应用程序.xaml:
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
<Image x:Key="bulletArrowUp" Source="Leaves.jpg" Stretch="None"/>
<Image x:Key="bulletArrowDown" Source="Leaves.jpg" Stretch="None"/>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
窗口1.xaml:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<local:UserControl1/>
</Window>
Run Code Online (Sandbox Code Playgroud)
用户控件1.xaml:
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<StaticResourceExtension x:Key="columnHeaderSortUpImage" ResourceKey="bulletArrowUp"/>
<StaticResourceExtension x:Key="columnHeaderSortDownImage" ResourceKey="bulletArrowDown"/>
</UserControl.Resources>
<ContentControl Content="{StaticResource columnHeaderSortUpImage}"/>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
我将Leaves.jpg图像添加到我的项目中,它显示得很好。
| 归档时间: |
|
| 查看次数: |
2670 次 |
| 最近记录: |