feat: add disable container.
This commit is contained in:
16
src/Ursa.Themes.Semi/Controls/DisableContainer.axaml
Normal file
16
src/Ursa.Themes.Semi/Controls/DisableContainer.axaml
Normal file
@@ -0,0 +1,16 @@
|
||||
<ResourceDictionary xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:shapes="clr-namespace:Ursa.Controls.Shapes;assembly=Ursa">
|
||||
<!-- Add Resources Here -->
|
||||
<ControlTheme TargetType="u:DisableContainer" x:Key="{x:Type u:DisableContainer}">
|
||||
<Setter Property="Template">
|
||||
<ControlTemplate TargetType="u:DisableContainer">
|
||||
<Panel>
|
||||
<ContentPresenter Content="{TemplateBinding Content}"></ContentPresenter>
|
||||
<shapes:PureRectangle Background="Transparent" IsVisible="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.IsEnabled, Converter={x:Static BoolConverters.Not}}" Cursor="No" ToolTip.Tip="{TemplateBinding DisabledTip}"/>
|
||||
</Panel>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
</ControlTheme>
|
||||
</ResourceDictionary>
|
||||
@@ -7,6 +7,7 @@
|
||||
<ResourceInclude Source="ControlClassesInput.axaml" />
|
||||
<ResourceInclude Source="Dialog.axaml" />
|
||||
<ResourceInclude Source="DialogShared.axaml" />
|
||||
<ResourceInclude Source="DisableContainer.axaml" />
|
||||
<ResourceInclude Source="Divider.axaml" />
|
||||
<ResourceInclude Source="Drawer.axaml" />
|
||||
<ResourceInclude Source="DualBadge.axaml" />
|
||||
|
||||
29
src/Ursa/Controls/DisableContainer.cs
Normal file
29
src/Ursa/Controls/DisableContainer.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Metadata;
|
||||
|
||||
namespace Ursa.Controls;
|
||||
|
||||
public class DisableContainer: TemplatedControl
|
||||
{
|
||||
public static readonly StyledProperty<InputElement?> ContentProperty = AvaloniaProperty.Register<DisableContainer, InputElement?>(
|
||||
nameof(Content));
|
||||
|
||||
[Content]
|
||||
public InputElement? Content
|
||||
{
|
||||
get => GetValue(ContentProperty);
|
||||
set => SetValue(ContentProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<object?> DisabledTipProperty = AvaloniaProperty.Register<DisableContainer, object?>(
|
||||
nameof(DisabledTip));
|
||||
|
||||
public object? DisabledTip
|
||||
{
|
||||
get => GetValue(DisabledTipProperty);
|
||||
set => SetValue(DisabledTipProperty, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user