Opción Primera Mediante código XAML
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.MainWindow" Icon="WPFIcon1.ico"> </Window>
Opción segunda, Mediante código
- Que el icono sea un fichero que guardamos en la misma carpeta que el ejecutable
- Que el icono este incluido como un recurso
El icono es un fichero que guardamos en la misma carpeta que el ejecutable
Ejemplo sencillo de msdn
Dim iconUri As New Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute) Me.Icon = BitmapFrame.Create(iconUri)
Ejemplo un poco mas complicado
'------------------------------------- ' El nombre del icono esta en la misma carpeta que el ensamblado ejecutable 'https://learn.microsoft.com/es-es/dotnet/api/system.windows.window.icon?view = windowsdesktop-7.0 '------------------------------------- 'Paso A) Obtener el nombre del ensamblado' esto obtiene la DLL o el EXE seg�n Dim LocalNombreCompletoDelEnsamblado As String = System.Reflection.Assembly.GetExecutingAssembly().Location ' Solo necesito la ruta Dim LocalRutaDelEnsamblado As String = System.IO.Path.GetDirectoryName(LocalNombreCompletoDelEnsamblado) '------------------------------------- 'Paso B) Nombre completo del ejecutable (El fichero exe) ' (ruta + nombre + extensión) Dim NombreCompletoDelIcono As String = System.IO.Path.Combine(LocalRutaDelEnsamblado, "Stopwatch.ico") '------------------------------------- 'Paso c) Con el nombre de fichero generar un objeto URI ' y crear el icono y asignarlo a la propiedad If System.IO.File.Exists(NombreCompletoDelIcono) = True Then Dim iconUri As New Uri(NombreCompletoDelIcono) Me.Icon = BitmapFrame.Create(iconUri) End If
El icono esta incluido como un recurso
'------------------------------------- ' El nombre del icono esta en recursos ' https://stackoverflow.com/questions/43179090/change-taskbar-icon-at-runtime-on-deployed-app/43179733#43179733 ' Dim ms_icon As BitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon( My.Resources.Stopwatch.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()) Me.Icon = ms_icon