Added PersonPicture
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class BitmapIcon : FluentAvalonia.UI.Controls.BitmapIcon
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class BitmapIconSource : FluentAvalonia.UI.Controls.BitmapIconSource
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Templates;
|
||||
using Avalonia.LogicalTree;
|
||||
using Avalonia.Metadata;
|
||||
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class ContentIcon : FluentAvalonia.UI.Controls.FAIconElement
|
||||
{
|
||||
public static readonly StyledProperty<object?> ContentProperty =
|
||||
AvaloniaProperty.Register<ContentIcon, object?>("Content");
|
||||
|
||||
public static readonly StyledProperty<IDataTemplate?> ContentTemplateProperty =
|
||||
AvaloniaProperty.Register<ContentIcon, IDataTemplate?>("ContentTemplate");
|
||||
|
||||
private ContentControl? content;
|
||||
|
||||
[Content]
|
||||
public object? Content
|
||||
{
|
||||
get => GetValue(ContentProperty);
|
||||
set => SetValue(ContentProperty, value);
|
||||
}
|
||||
public IDataTemplate? IconTemplate
|
||||
{
|
||||
get => GetValue(ContentTemplateProperty);
|
||||
set => SetValue(ContentTemplateProperty, value);
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
{
|
||||
if (content == null)
|
||||
{
|
||||
CreateContent();
|
||||
}
|
||||
|
||||
return base.MeasureOverride(availableSize);
|
||||
|
||||
}
|
||||
|
||||
protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs args)
|
||||
{
|
||||
if (VisualChildren.Count > 0)
|
||||
{
|
||||
((ILogical)VisualChildren[0]).NotifyAttachedToLogicalTree(args);
|
||||
}
|
||||
|
||||
base.OnAttachedToLogicalTree(args);
|
||||
}
|
||||
|
||||
protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs args)
|
||||
{
|
||||
if (VisualChildren.Count > 0)
|
||||
{
|
||||
((ILogical)VisualChildren[0]).NotifyDetachedFromLogicalTree(args);
|
||||
}
|
||||
|
||||
base.OnDetachedFromLogicalTree(args);
|
||||
}
|
||||
private void CreateContent()
|
||||
{
|
||||
content = new ContentControl();
|
||||
|
||||
content.Bind(ContentControl.ContentProperty, this.GetBindingObservable(ContentProperty));
|
||||
content.Bind(ContentControl.ContentTemplateProperty, this.GetBindingObservable(ContentTemplateProperty));
|
||||
|
||||
LogicalChildren.Add(content);
|
||||
VisualChildren.Add(content);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls.Templates;
|
||||
using Avalonia.Metadata;
|
||||
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class ContentIconSource : FluentAvalonia.UI.Controls.IconSource
|
||||
{
|
||||
public static readonly StyledProperty<object?> ContentProperty =
|
||||
AvaloniaProperty.Register<ContentIconSource, object?>("Content");
|
||||
|
||||
public static readonly StyledProperty<IDataTemplate?> ContentTemplateProperty =
|
||||
AvaloniaProperty.Register<ContentIconSource, IDataTemplate?>("ContentTemplate");
|
||||
|
||||
[Content]
|
||||
public object? Content
|
||||
{
|
||||
get => GetValue(ContentProperty);
|
||||
set => SetValue(ContentProperty, value);
|
||||
}
|
||||
public IDataTemplate? IconTemplate
|
||||
{
|
||||
get => GetValue(ContentTemplateProperty);
|
||||
set => SetValue(ContentTemplateProperty, value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class FAIconElement : FluentAvalonia.UI.Controls.FAIconElement
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class FAPathIcon : FluentAvalonia.UI.Controls.FAPathIcon
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class FontIcon : FluentAvalonia.UI.Controls.FontIcon
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Kromek.UI.Avalonia.Controls
|
||||
{
|
||||
|
||||
public class FontIconSource : FluentAvalonia.UI.Controls.FontIconSource
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.Reflection;
|
||||
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class IconHelper
|
||||
{
|
||||
private static MethodInfo? invoker;
|
||||
|
||||
public static FluentAvalonia.UI.Controls.FAIconElement? CreateIconElement(FluentAvalonia.UI.Controls.IconSource source)
|
||||
{
|
||||
if (source is ContentIconSource contentIconSource)
|
||||
{
|
||||
ContentIcon contentIcon = new()
|
||||
{
|
||||
[!ContentIcon.ContentProperty] = contentIconSource[!ContentIconSource.ContentProperty],
|
||||
[!ContentIcon.ContentTemplateProperty] = contentIconSource[!ContentIconSource.ContentTemplateProperty],
|
||||
};
|
||||
|
||||
return contentIcon;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (invoker == null)
|
||||
{
|
||||
Type? iconHelpersType = Type.GetType("FluentAvalonia.UI.Controls.IconHelpers,FluentAvalonia");
|
||||
if (iconHelpersType?.GetMethod("CreateFromUnknown", BindingFlags.Public | BindingFlags.Static) is MethodInfo createFromUnknown)
|
||||
{
|
||||
invoker = createFromUnknown;
|
||||
}
|
||||
}
|
||||
|
||||
return (FluentAvalonia.UI.Controls.FAIconElement?)invoker?.Invoke(null, new object[] { source });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class ImageIcon : FluentAvalonia.UI.Controls.ImageIcon
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class ImageIconSource : FluentAvalonia.UI.Controls.ImageIconSource
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using Avalonia.Controls.Templates;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.LogicalTree;
|
||||
using Avalonia.Metadata;
|
||||
using Avalonia;
|
||||
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class PathIconSource : FluentAvalonia.UI.Controls.PathIconSource
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class SymbolIcon : FluentAvalonia.UI.Controls.SymbolIcon
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.UI.Controls.Avalonia;
|
||||
|
||||
public class SymbolIconSource : FluentAvalonia.UI.Controls.SymbolIconSource
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user