Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

wpf - What do image source paths mean in xaml?

I'm looking at the source code for the project I'm working on in Visual Studio, and the paths look weird in the WPF window XAML. For example, the icon member of the window element looks like this: Icon="/ProjectName;component/icons/ProjectName.ico"

First of all, what does the semicolon mean? Does that indicate two possible paths? That doesn't make sense.

I'm guessing ProjectName;component represents a path, because there's no component folder in my project. In my project folder, icons/ProjectName.ico is where the icon is.

What does it all mean?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

That is a Resource File Pack URI, without the prefix pack://application:,,,, which is automatically added by the XAML Parser.

The full Pack URI would be

pack://application:,,,/ProjectName;component/icons/ProjectName.ico

and would reference a resource file named ProjectName.ico in an icons subfolder in the referenced assembly ProjectName. The ;component part separates the assembly name from the file path.

If the resource file is in the local assembly, you could omit the referenced assembly part, and write

pack://application:,,,/icons/ProjectName.ico

or in XAML just

/icons/ProjectName.ico

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...