我正在开发一个WPF应用程序,并且我创建了一个名为ViewIconUC的用户控件。此控件存在于程序集(MyControlAssemblyUI)中。我可以在这个控件的ZAML页面中实例化控件,我没有错误(我甚至将dugger连接到Blend来检查),我可以看到我在控件中设置的按钮背景,但我分配给的图标文件我的控制没有出现。我在另一个程序集(MyAssembly)中使用该控件。当我将此程序集的项目加载到Blend时,获得相同的行为。但是,当我实际运行应用程序时,图标显示就像它应该的那样。所以它似乎是Blend的一个问题。有关如何在Blend中显示某些内容的任何建议吗?
控件的XAML是:
<UserControl
x:Class="MyStuff.MyControlAssemblyUI.ViewIconUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Name="m_ViewIconUC"
Height="36" Width="42"
>
<UserControl.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="#40FFFFFF"/>
</Style>
<Style TargetType="Image">
<Setter Property="Width" Value="32" />
<Setter Property="Height" Value="32" />
</Style>
</UserControl.Resources>
<Button x:Name="m_ViewIconUC_Button">
<Image
x:Name="m_ViewIconUC_Image"
Source="{Binding ElementName=m_ViewIconUC, Path=IconFile}"
/>
</Button>
</UserControl>
以下是MyControlAssemblyUI程序集中XAML页面中的实例化:
<Grid>
<MyControlAssemblyUI:ViewIconUC
x:Name="m_TestToolBtn"
IconFile="/Resources/Images/MyAppIcon32x32.png" />
</Grid>
我在实际应用程序(MyAssembly)中的实例化如下所示:
<MyControlAssemblyUI:ViewIconUC
x:Name="m_SelectToolBtn"
IconFile="/Resources/Images/SelectTool-32.png" />
除非有人提出要求,否则我不会附加代码隐藏。
答案 0 :(得分:1)
问题是客户端中的IconFile字符串有一个前导斜杠。我将其更改为以下内容,一切正常。
<MyControlAssemblyUI:ViewIconUC
x:Name="m_SelectToolBtn"
IconFile="Resources/Images/SelectTool-32.png" />