Xamarin中的动态嵌入式资源路径

Xamarin中的动态嵌入式资源路径,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个Xamarin应用程序,其中我希望使用自定义视图在共享应用程序项目中使用嵌入式资源,如下所示: xmlns:views="clr-namespace:MyApp.Views" ... <views:Icon ResourceId="{Binding IconPath}" WidthRequest="100" HeightRequest="100" HorizontalOptions="Center" VerticalOptions="Center"/>

我有一个Xamarin应用程序,其中我希望使用自定义视图在共享应用程序项目中使用嵌入式资源,如下所示:

xmlns:views="clr-namespace:MyApp.Views"

...

<views:Icon ResourceId="{Binding IconPath}" 
    WidthRequest="100" HeightRequest="100" 
    HorizontalOptions="Center" VerticalOptions="Center"/>
因此,似乎正在将
UWP
[目标平台]
添加到路径中。使用此“完整”路径时,将呈现图标


在这个共享代码的项目中,我是否可以避免这个额外的前缀?如果没有,我是否可以在视图模型中使用API将
[目标平台]
-前缀动态添加到我的
IconPath
中?

指定自定义
逻辑名称
以覆盖命名空间/程序集生成的前缀

通过Visual Studio中项目的
属性面板或
.csproj

  <ItemGroup>
    <EmbeddedResource Include="my.svg">
      <LogicalName>MyCustomSVGName.svg</LogicalName>
    </EmbeddedResource>
  </ItemGroup>

MyCustomSVGName.svg
在这种情况下,它将是:

<EmbeddedResource Include="$(MSBuildThisFileDirectory)Images\dashboard\approach.svg">
  <LogicalName>MyApp.Images.dashboard.approach.svg</LogicalName>
</EmbeddedResource>

MyApp.Images.dashboard.approach.svg

谢谢,但我不知道该如何使用。在VS 2017社区的我的属性面板中,我看不到任何
LogicalName
,如何更详细地定义包含路径和逻辑名称路径?@span直接编辑
.csproj
(在VS4M IDE中也称为
资源ID
),谢谢,如果还有像我这样的noob出现,请添加一个编辑。我没有一个
csproj
,而是一个
shproj
文件。我可以添加到
projitems
文件中:)@span谢谢您的编辑,没有想到您会使用共享项目……这是一个优雅的解决方案。然而,对于具有许多图像的情况来说,这是非常麻烦的,并且还需要对图像路径进行硬编码,这不能满足对动态资源路径的原始请求。
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Images\dashboard\approach.svg">
  <LogicalName>MyApp.Images.dashboard.approach.svg</LogicalName>
</EmbeddedResource>