Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/IconPacks.Avalonia.Core/PackIconControlBase.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
x:ClassModifier="internal">
<Design.PreviewWith>
<iconPacks:PackIconControl Kind="{x:Static iconPacks:PackIconMaterialKind.AbugidaThai}" />
</Design.PreviewWith>

<ControlTemplate x:Key="IconPacks.Avalonia.PackIconControlBase.Template" TargetType="iconPacks:PackIconControlBase">
<Border CornerRadius="{TemplateBinding CornerRadius}"
Expand All @@ -13,7 +16,6 @@
<Grid x:Name="PART_InnerGrid">
<Viewbox x:Name="PART_ViewBox">
<Path x:Name="PART_IconPath"
Fill="{TemplateBinding Foreground}"
Data="{TemplateBinding Data}"
Stretch="Uniform"
UseLayoutRounding="False" />
Expand Down
11 changes: 11 additions & 0 deletions src/IconPacks.Avalonia.sln
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IconPacks.Avalonia.Zondicon
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IconPacks.Avalonia.KeyruneIcons", "IconPacks.Avalonia.KeyruneIcons\IconPacks.Avalonia.KeyruneIcons.csproj", "{AE3ADEC9-7B3C-49B9-D8FF-D504AF916208}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{54CC791D-8AC9-49F9-9B96-92512AF0935E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleApp", "samples\SampleApp\SampleApp.csproj", "{A271916F-B5BA-4C2C-BE2F-D144FA32A395}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -279,11 +283,18 @@ Global
{AE3ADEC9-7B3C-49B9-D8FF-D504AF916208}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE3ADEC9-7B3C-49B9-D8FF-D504AF916208}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE3ADEC9-7B3C-49B9-D8FF-D504AF916208}.Release|Any CPU.Build.0 = Release|Any CPU
{A271916F-B5BA-4C2C-BE2F-D144FA32A395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A271916F-B5BA-4C2C-BE2F-D144FA32A395}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A271916F-B5BA-4C2C-BE2F-D144FA32A395}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A271916F-B5BA-4C2C-BE2F-D144FA32A395}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {070F04CA-A678-42FC-B584-DD8738FA157D}
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A271916F-B5BA-4C2C-BE2F-D144FA32A395} = {54CC791D-8AC9-49F9-9B96-92512AF0935E}
EndGlobalSection
EndGlobal
3 changes: 3 additions & 0 deletions src/samples/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<Project>

</Project>
3 changes: 3 additions & 0 deletions src/samples/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

</Project>
16 changes: 16 additions & 0 deletions src/samples/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project>
<!--
This enabled central package management.
This allows for controling all NuGet packages within the Directory.Packages.props file
See https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management?WT.mc_id=DT-MVP-5003472
-->

<PropertyGroup>
<!-- This property enables the Central Package Management feature -->
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
<!-- https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management?WT.mc_id=DT-MVP-5003472#transitive-pinning -->
<AvaloniaVersion>11.3.3</AvaloniaVersion>
</PropertyGroup>


</Project>
11 changes: 11 additions & 0 deletions src/samples/SampleApp/App.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SampleApp.App"
RequestedThemeVariant="Default">
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->

<Application.Styles>
<FluentTheme />
<StyleInclude Source="avares://IconPacks.Avalonia/Icons.axaml" />
</Application.Styles>
</Application>
47 changes: 47 additions & 0 deletions src/samples/SampleApp/App.axaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Data.Core;
using Avalonia.Data.Core.Plugins;
using System.Linq;
using Avalonia.Markup.Xaml;
using SampleApp.ViewModels;
using SampleApp.Views;

namespace SampleApp;

public partial class App : Application
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}

public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
// Avoid duplicate validations from both Avalonia and the CommunityToolkit.
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
DisableAvaloniaDataAnnotationValidation();
desktop.MainWindow = new MainWindow
{
DataContext = new MainWindowViewModel(),
};
}

base.OnFrameworkInitializationCompleted();
}

private void DisableAvaloniaDataAnnotationValidation()
{
// Get an array of plugins to remove
var dataValidationPluginsToRemove =
BindingPlugins.DataValidators.OfType<DataAnnotationsValidationPlugin>().ToArray();

// remove each entry found
foreach (var plugin in dataValidationPluginsToRemove)
{
BindingPlugins.DataValidators.Remove(plugin);
}
}
}
Binary file added src/samples/SampleApp/Assets/avalonia-logo.ico
Binary file not shown.
21 changes: 21 additions & 0 deletions src/samples/SampleApp/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using Avalonia;
using System;

namespace SampleApp;

sealed class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);

// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}
34 changes: 34 additions & 0 deletions src/samples/SampleApp/SampleApp.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
<ApplicationManifest>app.manifest</ApplicationManifest>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>

<ItemGroup>
<Folder Include="Models\"/>
<AvaloniaResource Include="Assets\**"/>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Avalonia" Version="11.3.3"/>
<PackageReference Include="Avalonia.Desktop" Version="11.3.3"/>
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.3"/>
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.3"/>
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.3">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1"/>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\IconPacks.Avalonia.FeatherIcons\IconPacks.Avalonia.FeatherIcons.csproj" />
<ProjectReference Include="..\..\IconPacks.Avalonia.Material\IconPacks.Avalonia.Material.csproj" />
<ProjectReference Include="..\..\IconPacks.Avalonia\IconPacks.Avalonia.csproj" />
</ItemGroup>
</Project>
15 changes: 15 additions & 0 deletions src/samples/SampleApp/ViewModels/MainWindowViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using IconPacks.Avalonia.FeatherIcons;
using IconPacks.Avalonia.Material;

namespace SampleApp.ViewModels;

public partial class MainWindowViewModel : ViewModelBase
{
public List<Enum> SampleIcons { get; } =
[
PackIconFeatherIconsKind.Activity,
PackIconMaterialKind.Abacus
];
}
7 changes: 7 additions & 0 deletions src/samples/SampleApp/ViewModels/ViewModelBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using CommunityToolkit.Mvvm.ComponentModel;

namespace SampleApp.ViewModels;

public class ViewModelBase : ObservableObject
{
}
29 changes: 29 additions & 0 deletions src/samples/SampleApp/Views/MainWindow.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:SampleApp.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="SampleApp.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico"
Title="SampleApp">

<Design.DataContext>
<!-- This only sets the DataContext for the previewer in an IDE,
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
<vm:MainWindowViewModel/>
</Design.DataContext>

<ListBox ItemsSource="{Binding SampleIcons}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<iconPacks:PackIconControl Kind="{Binding}" />
<TextBlock Text="{Binding}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Window>
11 changes: 11 additions & 0 deletions src/samples/SampleApp/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using Avalonia.Controls;

namespace SampleApp.Views;

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
18 changes: 18 additions & 0 deletions src/samples/SampleApp/app.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- This manifest is used on Windows only.
Don't remove it as it might cause problems with window transparency and embedded controls.
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
<assemblyIdentity version="1.0.0.0" name="SampleApp1.Desktop"/>

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->

<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
</assembly>
Loading