2016-07-22 97 views
1

我试图用{x:Static icons:New.png}代替C:\Users\StrangeUser\documents\visual studio 2012\Projects\WPFGO\WPFGO\Resources\New.png 但它不起作用New does not exists int namespace clr-namespace:WPFGO.Resources。如何解决它?WPF xaml源代码路径

的xmlns:图标= “CLR的命名空间:WPFGO.Resources”

<UserControl.Resources> 
     <Style x:Key="CreateIconButton"> 
      <Setter Property="Control.Template"> 
       <Setter.Value> 
        <ControlTemplate> 
         <!--<Image Source="{x:Static icons:New.png}"></Image>--> 
         <Image Source="C:\Users\StrangeUser\documents\visual studio 2012\Projects\WPFGO\WPFGO\Resources\New.png" Height="15" /> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </UserControl.Resources> 
+0

我必须失去了一些东西,你为什么不只是使用[包的URI(https://msdn.microsoft .COM/EN-US /库/ aa970069(v = VS.100)的.aspx)? –

回答

2

一下添加到顶级资源标签

<BitmapImage x:Key="somekey" UriSource="..." /> 

,然后你就可以做

<Image Source="{StaticResource somekey}"/> 
+0

但是如果目录应该改变?它应该工作? – A191919

+0

@ A191919你将不得不更新UriSource,但你只需要做一次而不是遍布整个地方。您也可以使用相对路径。\ myImage.png – Steve

+0

资源是通过“{StaticResource key}”而不是“{x:Static key}”引用的。 –

0

我r成为类似的问题,并想要一个更简单的方法来管理这些资源。假设您要从外部VS控制文件目录层次结构,您可以使用属性文件。

  1. 在VS中转到属性 - >项目文件中的资源。
  2. 您需要指定一个名称值(您将引用的内容),例如myResource,相关文件的实际位置,以及必要时的注释。
  3. 继续并保存该文件,并重建项目以使属性与XAML同步。

现在你在你的项目中引用属性,如本能力:

xmlns:prop="clr-namespace:WPFGO.Properties" 

<Image Source="{Binding Source={x:Static prop:Resources.myResource}}"/> 

整洁的部分这个将得到改变,在短短的资源文件的位置的能力。 XAML将为您创建Uri,并使其作为开发人员更简单一些。

更新:

看起来你有足够的资源文件夹下添加的资源,VS(WPFGO \资源\ New.png)。在性能部分的值可能是这个样子:

/Resources/New.png