diff --git a/Documents/Help/Changelog.md b/Documents/Help/Changelog.md
index ccbe1659b..4f0c2820b 100644
--- a/Documents/Help/Changelog.md
+++ b/Documents/Help/Changelog.md
@@ -3,12 +3,15 @@
=======
## 2024-11-xx - Build 2411 - November 2024
+* Implemented [#1204](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1204), Build on `KryptonCommandLinkButtons`
+ - [#1216](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1216), Add support for fonts
+ - [#1217](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1217), Add support for text alignment
* Resolved [#996](https://github.com/Krypton-Suite/Standard-Toolkit/issues/996), DataGridView ComboBox Adding list over and over
* Resolved [#1207](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1207), Microsoft 365 - Black (Dark Mode) Drop button is not visible
* Resolved [#1206](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1206), Remove the Font Size (as it is already covered by the actual font !)
* Resolved [#1197](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1197), `KryptonTaskDialog` Footer Images
* Resolved [#1189](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1189), The Context and Next/Pervious buttons of the `KryptonDockableNavigator` cannot be used
-* Implement [#1187](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1187), Bring over the `KryptonCommandLinkButtons`
+* Implemented [#1187](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1187), Bring over the `KryptonCommandLinkButtons`
* Resolved [#1176](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1176), KryptonProgressBar: small values escape drawing area
* Resolved [#1169](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1169), Button Spec Krypton Context Menu (Canary)
* Implemented [#1166](https://github.com/Krypton-Suite/Standard-Toolkit/issues/1166), Use a struct to contain `KryptonMessageBox` data
diff --git a/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonAlternateCommandLinkButton.cs b/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonAlternateCommandLinkButton.cs
index 60ed3cb06..27863eff7 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonAlternateCommandLinkButton.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonAlternateCommandLinkButton.cs
@@ -2,7 +2,7 @@
/*
*
* New BSD 3-Clause License (https://github.com/Krypton-Suite/Standard-Toolkit/blob/master/LICENSE)
- * Modifications by Peter Wagner(aka Wagnerp) & Simon Coghlan(aka Smurf-IV), et al. 2023 - 2023. All rights reserved.
+ * Modifications by Peter Wagner(aka Wagnerp) & Simon Coghlan(aka Smurf-IV), et al. 2017 - 2023. All rights reserved.
*
*/
#endregion
diff --git a/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonCommandLinkButton.cs b/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonCommandLinkButton.cs
index d22d78500..391a7d77a 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonCommandLinkButton.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Controls Toolkit/KryptonCommandLinkButton.cs
@@ -2,7 +2,7 @@
/*
*
* New BSD 3-Clause License (https://github.com/Krypton-Suite/Standard-Toolkit/blob/master/LICENSE)
- * Modifications by Peter Wagner(aka Wagnerp) & Simon Coghlan(aka Smurf-IV), et al. 2023 - 2023. All rights reserved.
+ * Modifications by Peter Wagner(aka Wagnerp) & Simon Coghlan(aka Smurf-IV), et al. 2017 - 2023. All rights reserved.
*
*/
#endregion
@@ -75,6 +75,7 @@ public KryptonCommandLinkButton()
// Create content storage
CommandLinkImageValues = new CommandLinkImageValues(NeedPaintDelegate);
+ CommandLinkImageValues.Image = CommandLinkImageResources.Windows_11_CommandLink_Arrow;
CommandLinkTextValues = new CommandLinkTextValues(NeedPaintDelegate);
// Create the palette storage
@@ -182,19 +183,14 @@ public override string Text
set => CommandLinkTextValues.Heading = value;
}
- private bool ShouldSerializeText()
- {
+ private bool ShouldSerializeText() =>
// Never serialize, let the button values serialize instead
- return false;
- }
+ false;
///
/// Resets the Text property to its default value.
///
- public override void ResetText()
- {
- CommandLinkTextValues.ResetText();
- }
+ public override void ResetText() => CommandLinkTextValues.ResetText();
///
/// Gets and sets the visual orientation of the control.
@@ -240,15 +236,9 @@ public ButtonStyle ButtonStyle
}
}
- private bool ShouldSerializeButtonStyle()
- {
- return (ButtonStyle != ButtonStyle.Command);
- }
+ private bool ShouldSerializeButtonStyle() => (ButtonStyle != ButtonStyle.Command);
- private void ResetButtonStyle()
- {
- ButtonStyle = ButtonStyle.Command;
- }
+ private void ResetButtonStyle() => ButtonStyle = ButtonStyle.Command;
///
/// Gets access to the button content.
@@ -266,10 +256,7 @@ private void ResetButtonStyle()
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public CommandLinkImageValues CommandLinkImageValues { get; }
- private bool ShouldSerializeValues()
- {
- return false;
- }
+ private bool ShouldSerializeValues() => false;
///
/// Gets access to the common button appearance that other states can override.
@@ -279,10 +266,7 @@ private bool ShouldSerializeValues()
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public PaletteTripleRedirect StateCommon { get; }
- private bool ShouldSerializeStateCommon()
- {
- return !StateCommon.IsDefault;
- }
+ private bool ShouldSerializeStateCommon() => !StateCommon.IsDefault;
///
/// Gets access to the disabled button appearance entries.
@@ -499,7 +483,7 @@ public virtual void SetFixedState(PaletteState state)
///
/// Gets the default size of the control.
///
- protected override Size DefaultSize => new Size(287, 61);
+ protected override Size DefaultSize => new Size(319, 61);
///
/// Gets the default Input Method Editor (IME) mode supported by this control.
@@ -618,11 +602,59 @@ protected override void ContextMenuClosed()
///
protected override void OnPaint(PaintEventArgs? e)
{
- //if (CommandLinkImageValues.ShowUACShield)
- //{
- // SendMessage(new HandleRef(this, Handle), BCM_SETSHIELD, IntPtr.Zero,
- // CommandLinkImageValues.ShowUACShield);
- //}
+ if (CommandLinkTextValues.DescriptionFont != null)
+ {
+ StateCommon.Content.LongText.Font = CommandLinkTextValues.DescriptionFont;
+ }
+ else
+ {
+ StateCommon.Content.LongText.Font = null;
+ }
+
+ if (CommandLinkTextValues.HeadingFont != null)
+ {
+ StateCommon.Content.ShortText.Font = CommandLinkTextValues.HeadingFont;
+ }
+ else
+ {
+ StateCommon.Content.ShortText.Font = null;
+ }
+
+ if (CommandLinkTextValues.DescriptionTextHAlignment != null)
+ {
+ StateCommon.Content.LongText.TextH = CommandLinkTextValues.DescriptionTextHAlignment ?? PaletteRelativeAlign.Near;
+ }
+ else
+ {
+ StateCommon.Content.LongText.TextH = PaletteRelativeAlign.Near;
+ }
+
+ if (CommandLinkTextValues.DescriptionTextVAlignment != null)
+ {
+ StateCommon.Content.LongText.TextV = CommandLinkTextValues.DescriptionTextVAlignment ?? PaletteRelativeAlign.Far;
+ }
+ else
+ {
+ StateCommon.Content.LongText.TextV = PaletteRelativeAlign.Far;
+ }
+
+ if (CommandLinkTextValues.HeadingTextHAlignment != null)
+ {
+ StateCommon.Content.ShortText.TextH = CommandLinkTextValues.HeadingTextHAlignment ?? PaletteRelativeAlign.Near;
+ }
+ else
+ {
+ StateCommon.Content.ShortText.TextH = PaletteRelativeAlign.Near;
+ }
+
+ if (CommandLinkTextValues.HeadingTextVAlignment != null)
+ {
+ StateCommon.Content.ShortText.TextV = CommandLinkTextValues.HeadingTextVAlignment ?? PaletteRelativeAlign.Center;
+ }
+ else
+ {
+ StateCommon.Content.ShortText.TextV = PaletteRelativeAlign.Center;
+ }
base.OnPaint(e);
}
diff --git a/Source/Krypton Components/Krypton.Toolkit/Global/GlobalDeclarations.cs b/Source/Krypton Components/Krypton.Toolkit/Global/GlobalDeclarations.cs
index 2b69b7d55..5afe795c8 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Global/GlobalDeclarations.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Global/GlobalDeclarations.cs
@@ -48,6 +48,7 @@
global using Krypton.Toolkit.ResourceFiles.Arrows;
global using Krypton.Toolkit.ResourceFiles.ButtonSpecs;
global using Krypton.Toolkit.ResourceFiles.CheckBoxes;
+global using Krypton.Toolkit.ResourceFiles.CommandLink;
global using Krypton.Toolkit.ResourceFiles.ControlBox;
global using Krypton.Toolkit.ResourceFiles.Dialogs;
global using Krypton.Toolkit.ResourceFiles.DropDown;
diff --git a/Source/Krypton Components/Krypton.Toolkit/Krypton.Toolkit 2022.csproj b/Source/Krypton Components/Krypton.Toolkit/Krypton.Toolkit 2022.csproj
index 408e28c06..a87a10b5e 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Krypton.Toolkit 2022.csproj
+++ b/Source/Krypton Components/Krypton.Toolkit/Krypton.Toolkit 2022.csproj
@@ -204,6 +204,11 @@
True
ColourScaleImageResources.resx
+
+ True
+ True
+ CommandLinkImageResources.resx
+
True
True
@@ -633,6 +638,10 @@
ResXFileCodeGenerator
ColourScaleImageResources.Designer.cs
+
+ ResXFileCodeGenerator
+ CommandLinkImageResources.Designer.cs
+
ResXFileCodeGenerator
Microsoft365ControlBoxResources.Designer.cs
diff --git a/Source/Krypton Components/Krypton.Toolkit/Palette Base/PaletteContent/PaletteContentText.cs b/Source/Krypton Components/Krypton.Toolkit/Palette Base/PaletteContent/PaletteContentText.cs
index e351fa045..ce65988fb 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Palette Base/PaletteContent/PaletteContentText.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Palette Base/PaletteContent/PaletteContentText.cs
@@ -273,7 +273,7 @@ public virtual PaletteTextHotkeyPrefix Prefix
}
}
#endregion
-
+
#region TextH
///
/// Gets the horizontal relative alignment of the text.
diff --git a/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.Designer.cs b/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.Designer.cs
new file mode 100644
index 000000000..6ab65a537
--- /dev/null
+++ b/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.Designer.cs
@@ -0,0 +1,83 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Krypton.Toolkit.ResourceFiles.CommandLink {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class CommandLinkImageResources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal CommandLinkImageResources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Krypton.Toolkit.ResourceFiles.CommandLink.CommandLinkImageResources", typeof(CommandLinkImageResources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Windows_10_CommandLink_Arrow {
+ get {
+ object obj = ResourceManager.GetObject("Windows_10_CommandLink_Arrow", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Windows_11_CommandLink_Arrow {
+ get {
+ object obj = ResourceManager.GetObject("Windows_11_CommandLink_Arrow", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.resx b/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.resx
new file mode 100644
index 000000000..3530f23ae
--- /dev/null
+++ b/Source/Krypton Components/Krypton.Toolkit/ResourceFiles/CommandLink/CommandLinkImageResources.resx
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\..\Resources\Windows 10 CommandLink Arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\..\Resources\Windows 11 CommandLink Arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 10 CommandLink Arrow.png b/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 10 CommandLink Arrow.png
new file mode 100644
index 000000000..8c850f59d
Binary files /dev/null and b/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 10 CommandLink Arrow.png differ
diff --git a/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 11 CommandLink Arrow.png b/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 11 CommandLink Arrow.png
new file mode 100644
index 000000000..f90e44ca0
Binary files /dev/null and b/Source/Krypton Components/Krypton.Toolkit/Resources/Windows 11 CommandLink Arrow.png differ
diff --git a/Source/Krypton Components/Krypton.Toolkit/Values/CaptionValues.cs b/Source/Krypton Components/Krypton.Toolkit/Values/CaptionValues.cs
index 5f1fa05b0..3e743d18c 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Values/CaptionValues.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Values/CaptionValues.cs
@@ -63,6 +63,7 @@ public override string Description
get => base.Description;
set => base.Description = value;
}
+
#endregion
}
}
diff --git a/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkImageValues.cs b/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkImageValues.cs
index 39600a039..1be1cefcb 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkImageValues.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkImageValues.cs
@@ -15,6 +15,10 @@ public class CommandLinkImageValues : Storage, IContentValues
private static readonly Image DEFAULT_IMAGE = MessageBoxImageResources.GenericQuestion;
+ private static readonly Image DEFAULT_WINDOWS_11_IMAGE = CommandLinkImageResources.Windows_11_CommandLink_Arrow;
+
+ private static readonly Image DEFAULT_WINDOWS_10_IMAGE = CommandLinkImageResources.Windows_10_CommandLink_Arrow;
+
#endregion
#region Instance Fields
@@ -31,6 +35,7 @@ public class CommandLinkImageValues : Storage, IContentValues
#region Public
+ [DefaultValue(false)]
public bool DisplayUACShield
{
get => _displayUACShield;
@@ -101,6 +106,7 @@ public Color ImageTransparentColor
[Category("Visuals")]
[Description("The image.")]
[RefreshProperties(RefreshProperties.All)]
+ //[DefaultValue()]
public Image? Image
{
get => _image;
@@ -115,9 +121,29 @@ public Image? Image
}
- private bool ShouldSerializeImage() => Image != DEFAULT_IMAGE;
+ private bool ShouldSerializeImage() => Image != DEFAULT_WINDOWS_11_IMAGE;
- public void ResetImage() => Image = DEFAULT_IMAGE;
+ public void ResetImage()
+ {
+ //if (OSUtilities.IsWindowsEleven)
+ //{
+ // Image = DEFAULT_WINDOWS_11_IMAGE;
+ //}
+ //else if (OSUtilities.IsWindowsTen)
+ //{
+ // Image = DEFAULT_WINDOWS_10_IMAGE;
+ //}
+ //else if (OSUtilities.IsWindowsEightPointOne || OSUtilities.IsWindowsEight || OSUtilities.IsWindowsSeven)
+ //{
+
+ //}
+ //else
+ //{
+ // Image = DEFAULT_IMAGE;
+ //}
+
+ Image = DEFAULT_WINDOWS_11_IMAGE;
+ }
[DefaultValue(UACShieldIconSize.Small), Description(@"")]
public UACShieldIconSize UACShieldIconSize
diff --git a/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkTextValues.cs b/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkTextValues.cs
index 0fc04cab8..3a3f3893c 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkTextValues.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Values/CommandLinkTextValues.cs
@@ -9,7 +9,7 @@
namespace Krypton.Toolkit
{
- public class CommandLinkTextValues : CaptionValues
+ public class CommandLinkTextValues : CaptionValues, IContentValues
{
#region Static Fields
@@ -19,12 +19,39 @@ public class CommandLinkTextValues : CaptionValues
#endregion
+ #region Instance Fields
+
+ private Font? _descriptionFont;
+
+ private Font? _headingFont;
+
+ private PaletteRelativeAlign? _descriptionTextHAlignment;
+
+ private PaletteRelativeAlign? _descriptionTextVAlignment;
+
+ private PaletteRelativeAlign? _headingTextHAlignment;
+
+ private PaletteRelativeAlign? _headingTextVAlignment;
+
+ #endregion
+
#region Identity
/// Initializes a new instance of the class.
/// Delegate for notifying paint requests.
public CommandLinkTextValues(NeedPaintHandler needPaint) : base(needPaint)
{
+ _descriptionFont = null;
+
+ _headingFont = null;
+
+ _descriptionTextHAlignment = PaletteRelativeAlign.Near;
+
+ _descriptionTextVAlignment = PaletteRelativeAlign.Far;
+
+ _headingTextHAlignment = PaletteRelativeAlign.Near;
+
+ _headingTextVAlignment = PaletteRelativeAlign.Center;
}
#endregion
@@ -51,6 +78,106 @@ public void ResetText()
Heading = DEFAULT_HEADING;
Description = DEFAULT_DESCRIPTION;
+
+ DescriptionFont = _descriptionFont;
+
+ HeadingFont = _headingFont;
+ }
+
+ [DefaultValue(null)]
+ public Font? DescriptionFont
+ {
+ get => _descriptionFont;
+
+ set
+ {
+ if (_descriptionFont != value)
+ {
+ _descriptionFont = value;
+
+ PerformNeedPaint(true);
+ }
+ }
+ }
+
+ [DefaultValue(null)]
+ public Font? HeadingFont
+ {
+ get => _headingFont;
+
+ set
+ {
+ if (_headingFont != value)
+ {
+ _headingFont = value;
+
+ PerformNeedPaint(true);
+ }
+ }
+ }
+
+ [DefaultValue(null)]
+ public PaletteRelativeAlign? DescriptionTextHAlignment
+ {
+ get => _descriptionTextHAlignment;
+
+ set
+ {
+ if (_descriptionTextHAlignment != value)
+ {
+ _descriptionTextHAlignment = value;
+
+ PerformNeedPaint(true);
+ }
+ }
+ }
+
+ [DefaultValue(null)]
+ public PaletteRelativeAlign? DescriptionTextVAlignment
+ {
+ get => _descriptionTextVAlignment;
+
+ set
+ {
+ if (_descriptionTextVAlignment != value)
+ {
+ _descriptionTextVAlignment = value;
+
+ PerformNeedPaint(true);
+ }
+ }
+ }
+
+ [DefaultValue(null)]
+ public PaletteRelativeAlign? HeadingTextHAlignment
+ {
+ get => _headingTextHAlignment;
+
+ set
+ {
+ if (_headingTextHAlignment != value)
+ {
+ _headingTextHAlignment = value;
+
+ PerformNeedPaint(true);
+ }
+ }
+ }
+
+ [DefaultValue(null)]
+ public PaletteRelativeAlign? HeadingTextVAlignment
+ {
+ get => _headingTextVAlignment;
+
+ set
+ {
+ if (_headingTextVAlignment != value)
+ {
+ _headingTextVAlignment = value;
+
+ PerformNeedPaint(true);
+ }
+ }
}
#endregion
diff --git a/Source/Krypton Components/Krypton.Toolkit/Values/HeaderValuesBase.cs b/Source/Krypton Components/Krypton.Toolkit/Values/HeaderValuesBase.cs
index 25e3e7e80..5e4756502 100644
--- a/Source/Krypton Components/Krypton.Toolkit/Values/HeaderValuesBase.cs
+++ b/Source/Krypton Components/Krypton.Toolkit/Values/HeaderValuesBase.cs
@@ -19,7 +19,9 @@ public abstract class HeaderValuesBase : Storage,
IContentValues
{
#region Static Fields
+
private static readonly Image _defaultImage = GenericImageResources.KryptonLogoGeneric;
+
#endregion
#region Instance Fields
@@ -35,7 +37,7 @@ public abstract class HeaderValuesBase : Storage,
///
public event EventHandler? TextChanged;
#endregion
-
+
#region Identity
///
/// Initialize a new instance of the HeaderValuesBase class.
@@ -45,7 +47,7 @@ protected HeaderValuesBase(NeedPaintHandler? needPaint)
{
// Store the provided paint notification delegate
NeedPaint = needPaint;
-
+
// Set initial values to the default
_image = GetImageDefault();
_transparent = Color.Empty;
@@ -67,6 +69,7 @@ protected HeaderValuesBase(NeedPaintHandler? needPaint)
#endregion
#region Default Values
+
///
/// Gets the default image value.
///
@@ -162,7 +165,7 @@ public Color ImageTransparentColor
public virtual Color GetImageTransparentColor(PaletteState state) => ImageTransparentColor;
#endregion
-
+
#region Heading
///
/// Gets and sets the heading text.
diff --git a/Source/Krypton Components/TestForm/Form7.Designer.cs b/Source/Krypton Components/TestForm/Form7.Designer.cs
index 601d117bd..081a28a52 100644
--- a/Source/Krypton Components/TestForm/Form7.Designer.cs
+++ b/Source/Krypton Components/TestForm/Form7.Designer.cs
@@ -57,8 +57,6 @@ private void InitializeComponent()
// kryptonCommandLinkButton5
//
this.kryptonCommandLinkButton5.ButtonStyle = Krypton.Toolkit.ButtonStyle.Standalone;
- this.kryptonCommandLinkButton5.CommandLinkImageValues.DisplayUACShield = false;
- this.kryptonCommandLinkButton5.CommandLinkImageValues.Image = null;
this.kryptonCommandLinkButton5.CommandLinkTextValues.Description = "What happens when the text is really long, \r\nand wants to go off the edge?\r\nThen " +
"Use a Multi-line ;-)\r\n";
this.kryptonCommandLinkButton5.CommandLinkTextValues.Heading = "&Control the World";
@@ -86,7 +84,6 @@ private void InitializeComponent()
this.kryptonCommandLinkButton5.StateCommon.Content.LongText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton5.StateCommon.Content.LongText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Far;
this.kryptonCommandLinkButton5.StateCommon.Content.LongText.Trim = Krypton.Toolkit.PaletteTextTrim.Word;
- this.kryptonCommandLinkButton5.StateCommon.Content.ShortText.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.kryptonCommandLinkButton5.StateCommon.Content.ShortText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton5.StateCommon.Content.ShortText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Center;
this.kryptonCommandLinkButton5.TabIndex = 5;
@@ -94,7 +91,6 @@ private void InitializeComponent()
// kryptonCommandLinkButton4
//
this.kryptonCommandLinkButton4.ButtonStyle = Krypton.Toolkit.ButtonStyle.NavigatorMini;
- this.kryptonCommandLinkButton4.CommandLinkImageValues.DisplayUACShield = false;
this.kryptonCommandLinkButton4.CommandLinkImageValues.Image = ((System.Drawing.Image)(resources.GetObject("kryptonCommandLinkButton4.CommandLinkImageValues.Image")));
this.kryptonCommandLinkButton4.CommandLinkTextValues.Description = " Demo the Shortcut display and rounded borders";
this.kryptonCommandLinkButton4.CommandLinkTextValues.Heading = "&Disabled Navigator Mini style";
@@ -116,7 +112,6 @@ private void InitializeComponent()
this.kryptonCommandLinkButton4.StateCommon.Border.Width = 2;
this.kryptonCommandLinkButton4.StateCommon.Content.LongText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton4.StateCommon.Content.LongText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Far;
- this.kryptonCommandLinkButton4.StateCommon.Content.ShortText.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.kryptonCommandLinkButton4.StateCommon.Content.ShortText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton4.StateCommon.Content.ShortText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Center;
this.kryptonCommandLinkButton4.TabIndex = 4;
@@ -124,8 +119,6 @@ private void InitializeComponent()
// kryptonCommandLinkButton3
//
this.kryptonCommandLinkButton3.ButtonStyle = Krypton.Toolkit.ButtonStyle.NavigatorMini;
- this.kryptonCommandLinkButton3.CommandLinkImageValues.DisplayUACShield = false;
- this.kryptonCommandLinkButton3.CommandLinkImageValues.Image = null;
this.kryptonCommandLinkButton3.CommandLinkTextValues.Description = " Demo the Shortcut display and rounded borders";
this.kryptonCommandLinkButton3.CommandLinkTextValues.Heading = "&Navigator Mini style";
this.kryptonCommandLinkButton3.Location = new System.Drawing.Point(12, 247);
@@ -145,7 +138,6 @@ private void InitializeComponent()
this.kryptonCommandLinkButton3.StateCommon.Border.Width = 2;
this.kryptonCommandLinkButton3.StateCommon.Content.LongText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton3.StateCommon.Content.LongText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Far;
- this.kryptonCommandLinkButton3.StateCommon.Content.ShortText.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.kryptonCommandLinkButton3.StateCommon.Content.ShortText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton3.StateCommon.Content.ShortText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Center;
this.kryptonCommandLinkButton3.TabIndex = 3;
@@ -153,8 +145,6 @@ private void InitializeComponent()
// kryptonCommandLinkButton2
//
this.kryptonCommandLinkButton2.ButtonStyle = Krypton.Toolkit.ButtonStyle.Standalone;
- this.kryptonCommandLinkButton2.CommandLinkImageValues.DisplayUACShield = false;
- this.kryptonCommandLinkButton2.CommandLinkImageValues.Image = null;
this.kryptonCommandLinkButton2.CommandLinkTextValues.Description = " Here be the extra Text with some spaces";
this.kryptonCommandLinkButton2.CommandLinkTextValues.Heading = "Standalone Style";
this.kryptonCommandLinkButton2.Location = new System.Drawing.Point(12, 180);
@@ -167,7 +157,6 @@ private void InitializeComponent()
this.kryptonCommandLinkButton2.Size = new System.Drawing.Size(341, 61);
this.kryptonCommandLinkButton2.StateCommon.Content.LongText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton2.StateCommon.Content.LongText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Far;
- this.kryptonCommandLinkButton2.StateCommon.Content.ShortText.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.kryptonCommandLinkButton2.StateCommon.Content.ShortText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton2.StateCommon.Content.ShortText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Center;
this.kryptonCommandLinkButton2.TabIndex = 2;
@@ -190,8 +179,6 @@ private void InitializeComponent()
//
// kryptonCommandLinkButton1
//
- this.kryptonCommandLinkButton1.CommandLinkImageValues.DisplayUACShield = false;
- this.kryptonCommandLinkButton1.CommandLinkImageValues.UACShieldIconSize = Krypton.Toolkit.UACShieldIconSize.Small;
this.kryptonCommandLinkButton1.CommandLinkTextValues.Description = "Here be the \"Note Text\"";
this.kryptonCommandLinkButton1.CommandLinkTextValues.Heading = "Default Ext Command Link";
this.kryptonCommandLinkButton1.Location = new System.Drawing.Point(12, 99);
@@ -204,7 +191,6 @@ private void InitializeComponent()
this.kryptonCommandLinkButton1.Size = new System.Drawing.Size(341, 61);
this.kryptonCommandLinkButton1.StateCommon.Content.LongText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton1.StateCommon.Content.LongText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Far;
- this.kryptonCommandLinkButton1.StateCommon.Content.ShortText.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.kryptonCommandLinkButton1.StateCommon.Content.ShortText.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.kryptonCommandLinkButton1.StateCommon.Content.ShortText.TextV = Krypton.Toolkit.PaletteRelativeAlign.Center;
this.kryptonCommandLinkButton1.TabIndex = 0;
diff --git a/Source/Krypton Components/TestForm/Form7.resx b/Source/Krypton Components/TestForm/Form7.resx
index 224a170ed..dcaac645d 100644
--- a/Source/Krypton Components/TestForm/Form7.resx
+++ b/Source/Krypton Components/TestForm/Form7.resx
@@ -165,7 +165,7 @@
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEAAACxABrSO9dQAAA2ZJREFUWEftl+lOU0EU
+ 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAAA2ZJREFUWEftl+lOU0EU
x3kK30JfQF+D730Al0QTWQqlYIMBIVAoCFUsFgHZZAfZkRLQgFIWQYSutKUbhUJpWXOcM8lc59Jb29uE
fvLDLyXnP3Pmz6znZu1durLN0TVD5lk1NG8a72bNRucMrf42qHfXZw5XPTQ49VDQX6igBrSuGvhxNAF9
vhZYOZqEF7YiyLE8h7FAJyyGhuHb4Sh89nfA78gCaJ3lVJNLi6cBpoOfYCE0BM3EhNqsFhv4TgzggEuH
@@ -230,7 +230,7 @@
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEAAACxABrSO9dQAAA2ZJREFUWEftl+lOU0EU
+ 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAAA2ZJREFUWEftl+lOU0EU
x3kK30JfQF+D730Al0QTWQqlYIMBIVAoCFUsFgHZZAfZkRLQgFIWQYSutKUbhUJpWXOcM8lc59Jb29uE
fvLDLyXnP3Pmz6znZu1durLN0TVD5lk1NG8a72bNRucMrf42qHfXZw5XPTQ49VDQX6igBrSuGvhxNAF9
vhZYOZqEF7YiyLE8h7FAJyyGhuHb4Sh89nfA78gCaJ3lVJNLi6cBpoOfYCE0BM3EhNqsFhv4TgzggEuH