项目名称中的句点似乎破坏了wpf图像源

问题描述 投票:0回答:1

我有一个针对 Net Core 8 的 wpf 项目,其命名约定如下:

myapp.test.shell

myapp.test.core

我想使用核心项目来存储我的图像,以供解决方案中其他项目的参考。

图像在运行时不可见:

<Image Source="pack://application:,,,/myapp.test.Core;component/resources/scanner.png" Height="24" Width="24" HorizontalAlignment="Left" Margin="0,0,5,0" />

图像在设计时显示,但在运行时丢失。

经过一番尝试,我发现如果我将图像放入名称中没有句点的项目中(即 myappresources),图像将按预期显示。

运行时可见图像:

<Image Source="pack://application:,,,/myappresources;component/resources/scanner.png" Height="24" Width="24" HorizontalAlignment="Left" Margin="0,0,5,0" />

我讨厌改变我的命名约定,所以我想知道是否有办法让它与项目名称中的句点一起工作?

名称中没有句点的项目:

Xaml:

           <Button x:Name="btnStartScan" Grid.Row="1" Grid.Column="1" Background="Transparent" Command="{Binding NavigationView}" CommandParameter="Scan">
               <StackPanel Orientation="Horizontal" Width="100">
                   <Image Source="pack://application:,,,/ResourcesTest;component/resources/scanner.png" Height="24" Width="24" HorizontalAlignment="Left" Margin="0,0,5,0" />
                   <TextBlock Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center">Start Scan</TextBlock>
               </StackPanel>
           </Button>

文件属性:

结果:

有周期的项目:

Xaml:

            <Button x:Name="btnStartScan" Grid.Row="1" Grid.Column="1" Background="Transparent" Command="{Binding NavigationView}" CommandParameter="Scan">
                <StackPanel Orientation="Horizontal" Width="100">
                    <Image Source="pack://application:,,,/EShareScan.Libraries.Core;component/resources/scanner.png" Height="24" Width="24" HorizontalAlignment="Left" Margin="0,0,5,0" />
                    <TextBlock Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center">Start Scan</TextBlock>
                </StackPanel>
            </Button>

文件属性:

结果:

c# wpf
1个回答
0
投票

问题出在项目文件上,而不是项目名称上。

没有句点:

  <PropertyGroup>
    <TargetFramework>net8.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

和他们在一起:

<PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
</PropertyGroup>

更改带有句点的项目的属性组以匹配不带句点的项目添加了wpf框架,然后图像开始显示。

© www.soinside.com 2019 - 2024. All rights reserved.