WPF의 리소스인 아이콘을 사용하려면 어떻게 해야 하나요?
리소스로 포함된 .ico 파일이 있습니다(리소스로 설정된 빌드 작업).Notify를 작성하려고 합니다.아이콘. 아이콘은 어떻게 참조할 수 있나요?
notifyIcon = new NotifyIcon();
notifyIcon.Icon = ?? // my icon file is called MyIcon.ico and is embedded
아이콘 파일을 프로젝트 어셈블리 중 하나에 추가하고 해당 빌드 액션을 리소스로 설정해야 합니다.어셈블리에 참조를 추가한 후 Notify를 생성할 수 있습니다.다음과 같은 아이콘:
System.Windows.Forms.NotifyIcon icon = new System.Windows.Forms.NotifyIcon();
Stream iconStream = Application.GetResourceStream( new Uri( "pack://application:,,,/YourReferencedAssembly;component/YourPossibleSubFolder/YourResourceFile.ico" )).Stream;
icon.Icon = new System.Drawing.Icon( iconStream );
일반적인 사용 패턴은 알림 아이콘을 기본 창의 아이콘과 동일하게 만드는 것입니다.아이콘은 PNG 파일로 정의됩니다.
이렇게 하려면 프로젝트 리소스에 이미지를 추가한 후 다음과 같이 사용하십시오.
var iconHandle = MyNamespace.Properties.Resources.MyImage.GetHicon();
this.notifyIcon.Icon = System.Drawing.Icon.FromHandle(iconHandle);
[ XAML ]
<Window x:Class="MyNamespace.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:local="clr-namespace:Seahorse"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="600"
Icon="images\MyImage.png">
resx 스타일의 자원을 사용하고 싶지 않습니다.프로퍼티에서 빌드 액션을 "Resources"로 설정합니다.
다음으로 PACK URI를 사용하여 XAML에서 참조할 수 있습니다."팩://어플리케이션:.../Artwork/Notify.ico"
여기를 참조해 주세요.http://msdn.microsoft.com/en-us/library/aa970069.aspx
조금 더 되고 싶다면...WPF와 마찬가지로 Notify가 있는 CodePlex의 WPF 기여 프로젝트를 조사해야 합니다.XAML에서 작성할 수 있는 아이콘 컨트롤 및 표준 WPF 메뉴를 사용하는 아이콘 컨트롤(메뉴에 「임의」를 붙일 수 있습니다).
간단한 답변만 찾는다면 MyApp이 애플리케이션 이름이고, MyApp이 애플리케이션의 루트 네임스페이스 이름이라고 생각합니다.pack URI 구문을 사용해야 하지만 내장된 리소스에서 아이콘을 꺼내기 위해 그렇게 복잡할 필요는 없습니다.
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Height="100"
Width="200"
Icon="pack://application:,,,/MyApp;component/Resources/small_icon.ico">
여기서 프로젝트를 만들고 임베디드 리소스를 사용했습니다(빌드 액션은 리소스가 아닌 임베디드 리소스로 설정되었습니다).이 솔루션은 리소스와 함께 작동하지 않지만 사용자가 조작할 수 있습니다.OnIntialized()에 올려놨는데 꼭 들어가실 필요는 없습니다.
//IconTest = namespace; exclamic.ico = resource
System.IO.Stream stream = this.GetType().Assembly.GetManifestResourceStream("IconTest.Resources.exclamic.ico");
if (stream != null)
{
//Decode the icon from the stream and set the first frame to the BitmapSource
BitmapDecoder decoder = IconBitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.None);
BitmapSource source = decoder.Frames[0];
//set the source of your image
image.Source = source;
}
언급URL : https://stackoverflow.com/questions/74466/how-do-i-use-an-icon-that-is-a-resource-in-wpf
'programing' 카테고리의 다른 글
| 문자열의 일부 문자를 다른 문자로 바꾸기 (0) | 2023.04.10 |
|---|---|
| 프로그래밍 방식으로 탐색 모음 높이 가져오기 (0) | 2023.04.10 |
| 기능 프로그래밍의 '접기' 기능과 동등한 '피토닉'은 무엇입니까? (0) | 2023.04.10 |
| 문자열 앞에 $는 무엇을 의미합니까? (0) | 2023.04.10 |
| prespare For Segue 전달 방법: 객체 (0) | 2023.04.10 |