Xamarin中的动态嵌入式资源路径
我有一个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"/>
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>