10

これはおそらく私が見逃している単純なものです。WPFウィンドウで*画像*コントロールのソースとして使用したいpngファイルがあります。このPNGファイルを[プロジェクトのプロパティ]>[リソース]>[既存のファイルの追加]で追加し、最初にリンクファイルとして(次に、機能しなかった場合は埋め込みとして)追加しました。次に、XAMLファイルの画像コントロールの*ソース*をこれに追加します。コードは必要ありません。クリックするだけです。

厄介な問題は、WPFウィンドウを設計しているときに画像が表示されることです。私がそれを実行するとき、それはしません。何も表示されません。

更新:以下にXAMLコードを追加

<Window x:Class="Server.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SERVER" Height="467.91" Width="620.522">

        <Grid>
        <Grid.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF080C59" Offset="0"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
        <Button x:Name="btnConnect" Content="Connect" HorizontalAlignment="Left" Height="30" Margin="425,34,0,0" VerticalAlignment="Top" Width="134" Click="btnConnect_Click"/>
        <Button x:Name="btnDisconnect" Content="Disconnect" HorizontalAlignment="Left" Height="35" Margin="425,69,0,0" VerticalAlignment="Top" Width="134" Click="btnDisconnect_Click"/>
        <TextBlock x:Name="txtLog" HorizontalAlignment="Left" Margin="416,160,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="161" Width="87" Background="#FFFFF5F5" Text="LOG:"/>
        <TextBox x:Name="txtMsg" HorizontalAlignment="Left" Height="23" Margin="416,326,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="112"/>
        <Button x:Name="btnSend" Content="Send" HorizontalAlignment="Left" Height="35" Margin="425,120,0,0" VerticalAlignment="Top" Width="134" Click="btnSend_Click"/>
        <ListView x:Name="lsvClients" Height="67" Margin="46,212,260,0" VerticalAlignment="Top">
            <ListView.View>
                <GridView>
                    <GridViewColumn/>
                </GridView>
            </ListView.View>
        </ListView>
        <Image HorizontalAlignment="Left" Height="100" Margin="31,10,0,0" VerticalAlignment="Top" Width="101" Source="pack://siteoforigin:,,,/images/ServerMainLogo.png"/>

    </Grid>
</Window>

私は何が欠けていますか?ありがとう

4

3 に答える 3

12

XAMLでイメージURIを指定する場合、通常、完全なURIを記述する必要はありません。他の回答に示されている完全なパックURIに加えて、次のように記述できるはずです。

<Image ... Source="images/ServerMainLogo.png"/>

ただし、この回答に示すように、イメージファイルがimagesVisual Studioプロジェクトで指定されたフォルダーにあり、そのビルドアクションがに設定されていることを確認する必要があります。Resource

または、ビルドアクションをに設定し、出力ディレクトリContentコピーをまたはCopy alwaysに設定することもできますCopy if newer。この場合、イメージはリソースとしてプログラムのアセンブリに埋め込まれず、実行可能ファイルに関連するディレクトリにコピーされるだけです。

XAMLの(相対)イメージURIは、どちらの場合でも機能します。

于 2013-03-27T06:58:45.960 に答える
4

siteOfOriginexecutables他の(出力フォルダ)が存在する場所にファイルをコピーする場合にのみ使用してください。リソースについては、application代わりに使用する必要があります。

Source="pack://application:,,,/images/ServerMainLogo.png"

パックURIの詳細については、このリンクを参照してください。

于 2013-03-27T06:45:06.820 に答える
1
  • プロジェクトのイメージプロパティに、「埋め込みリソース」ではなく「ビルドアクション」=「リソース」があることを確認してください
  • xamlで、画像タグを選択した状態で、プロパティウィンドウを使用して[ソース]ドロップダウンを選択します。これで、画像がドロップダウンリストに表示されます。これにより、VisualStudioで文字列をフォーマットできます。フォーマットされた文字列ビジュアルスタジオ

    私のイメージは:

    Source="pack://application:,,,/FamilyExplorer;component/Resources/Folder.png"/>

FamilyExplorer私のプロジェクト名はどこにResources/Folder.pngあり、画像の場所です。

于 2017-10-12T07:34:55.083 に答える