mirror of
https://gitee.com/chinware/atomui.git
synced 2024-12-02 03:47:52 +08:00
优化 InnerContent 是 Icon 的情况的样式
This commit is contained in:
parent
2c03b27424
commit
2d33d56823
@ -18,9 +18,9 @@
|
||||
Title="Three sizes of Input"
|
||||
Description="There are three sizes of an Input box: large (40px), default (32px) and small (24px).">
|
||||
<StackPanel Orientation="Vertical" Spacing="10" Margin="0, 0, 20, 0">
|
||||
<atom:LineEdit Watermark="Large" SizeType="Large" InnerLeftContent="{atom:IconProvider Kind=UserOutlined, Width=16, Height=16}"/>
|
||||
<atom:LineEdit Watermark="Middle" SizeType="Middle" InnerLeftContent="{atom:IconProvider Kind=UserOutlined, Width=14, Height=14}"/>
|
||||
<atom:LineEdit Watermark="Small" SizeType="Small" InnerLeftContent="{atom:IconProvider Kind=UserOutlined, Width=12, Height=12}"/>
|
||||
<atom:LineEdit Watermark="Large" SizeType="Large" InnerLeftContent="{atom:IconProvider Kind=UserOutlined}"/>
|
||||
<atom:LineEdit Watermark="Middle" SizeType="Middle" InnerLeftContent="{atom:IconProvider Kind=UserOutlined}"/>
|
||||
<atom:LineEdit Watermark="Small" SizeType="Small" InnerLeftContent="{atom:IconProvider Kind=UserOutlined}"/>
|
||||
</StackPanel>
|
||||
</showcase:ShowCaseItem>
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
<StackPanel Orientation="Vertical" Spacing="10">
|
||||
<atom:LineEdit LeftAddOn="http://" RightAddOn=".com" Width="400" HorizontalAlignment="Left"
|
||||
Text="mysite"/>
|
||||
<atom:LineEdit RightAddOn="{atom:IconProvider Kind=SettingOutlined, Width=16, Height=16}" Width="400" HorizontalAlignment="Left"
|
||||
<atom:LineEdit RightAddOn="{atom:IconProvider Kind=SettingOutlined}" Width="400" HorizontalAlignment="Left"
|
||||
Text="mysite"/>
|
||||
<atom:LineEdit LeftAddOn="http://" InnerRightContent=".com" Width="400" HorizontalAlignment="Left"
|
||||
Text="mysite"/>
|
||||
@ -80,8 +80,8 @@
|
||||
Description="Add a prefix or suffix icons inside input.">
|
||||
<StackPanel Orientation="Vertical" Spacing="10">
|
||||
<atom:LineEdit Watermark="Enter your username"
|
||||
InnerLeftContent="{atom:IconProvider Kind=UserOutlined, NormalFilledColor=#D7D7D7, Width=16, Height=16}"
|
||||
InnerRightContent="{atom:IconProvider Kind=InfoCircleOutlined, NormalFilledColor=#8C8C8C, Width=16, Height=16}"/>
|
||||
InnerLeftContent="{atom:IconProvider Kind=UserOutlined, NormalFilledColor=#D7D7D7}"
|
||||
InnerRightContent="{atom:IconProvider Kind=InfoCircleOutlined, NormalFilledColor=#8C8C8C}"/>
|
||||
<atom:LineEdit InnerLeftContent="¥" InnerRightContent="RMB"/>
|
||||
<atom:LineEdit InnerLeftContent="¥" InnerRightContent="RMB" IsEnabled="False"/>
|
||||
</StackPanel>
|
||||
@ -93,14 +93,14 @@
|
||||
<StackPanel Orientation="Vertical" Spacing="10" Margin="0, 0, 20, 0">
|
||||
<atom:LineEdit Watermark="Error" Status="Error"/>
|
||||
<atom:LineEdit Watermark="Warning" Status="Warning"/>
|
||||
<atom:LineEdit Watermark="Error with prefix" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined, Width=16, Height=16}" Status="Error"/>
|
||||
<atom:LineEdit Watermark="Warning with prefix" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined, Width=16, Height=16}" Status="Warning"/>
|
||||
<atom:LineEdit Watermark="Error with prefix" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" Status="Error"/>
|
||||
<atom:LineEdit Watermark="Warning with prefix" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" Status="Warning"/>
|
||||
|
||||
<atom:LineEdit Watermark="Error" Status="Error" StyleVariant="Filled"/>
|
||||
<atom:LineEdit Watermark="Warning" Status="Warning" StyleVariant="Filled"/>
|
||||
<atom:LineEdit Watermark="Error" Status="Error" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" StyleVariant="Filled"/>
|
||||
<atom:LineEdit Watermark="Warning" Status="Warning" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" StyleVariant="Filled"/>
|
||||
|
||||
<atom:LineEdit Watermark="Error" Status="Error" StyleVariant="Borderless"/>
|
||||
<atom:LineEdit Watermark="Warning" Status="Warning" StyleVariant="Borderless"/>
|
||||
<atom:LineEdit Watermark="Error" Status="Error" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" StyleVariant="Borderless"/>
|
||||
<atom:LineEdit Watermark="Warning" Status="Warning" InnerLeftContent="{atom:IconProvider Kind=ClockCircleOutlined}" StyleVariant="Borderless"/>
|
||||
</StackPanel>
|
||||
</showcase:ShowCaseItem>
|
||||
|
||||
|
@ -172,7 +172,6 @@ public class LineEdit : TextBox
|
||||
|
||||
#endregion
|
||||
|
||||
private readonly BorderRenderHelper _borderRenderHelper;
|
||||
private ContentPresenter? _leftAddOnPresenter;
|
||||
private ContentPresenter? _rightAddOnPresenter;
|
||||
private Border? _lineEditKernelDecorator;
|
||||
@ -183,12 +182,7 @@ public class LineEdit : TextBox
|
||||
AffectsRender<LineEdit>(BorderBrushProperty, BackgroundProperty);
|
||||
AffectsMeasure<LineEdit>(LeftAddOnProperty, RightAddOnProperty);
|
||||
}
|
||||
|
||||
public LineEdit()
|
||||
{
|
||||
_borderRenderHelper = new BorderRenderHelper();
|
||||
}
|
||||
|
||||
|
||||
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
||||
{
|
||||
base.OnApplyTemplate(e);
|
||||
@ -225,6 +219,17 @@ public class LineEdit : TextBox
|
||||
if (change.Property == StatusProperty) {
|
||||
UpdatePseudoClasses();
|
||||
}
|
||||
|
||||
if (change.Property == InnerLeftContentProperty ||
|
||||
change.Property == InnerRightContentProperty) {
|
||||
if (change.OldValue is Control oldControl) {
|
||||
UIStructureUtils.SetTemplateParent(oldControl, null);
|
||||
}
|
||||
|
||||
if (change.NewValue is Control newControl) {
|
||||
UIStructureUtils.SetTemplateParent(newControl, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupAddOnBorderInfo()
|
||||
|
@ -372,6 +372,15 @@ internal class LineEditTheme : BaseControlTheme
|
||||
var revealButtonStyle = new Style(selector => selector.Nesting().Template().Name(RevealButtonPart));
|
||||
revealButtonStyle.Add(ToggleIconButton.PaddingProperty, LineEditResourceKey.RightInnerAddOnMargin);
|
||||
commonStyle.Add(revealButtonStyle);
|
||||
|
||||
{
|
||||
// 左右 inner icon 的大小
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.WidthProperty, GlobalResourceKey.IconSize);
|
||||
innerContentIconStyle.Add(PathIcon.HeightProperty, GlobalResourceKey.IconSize);
|
||||
commonStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
var largeStyle =
|
||||
new Style(selector => selector.Nesting().PropertyEquals(LineEdit.SizeTypeProperty, SizeType.Large));
|
||||
@ -460,6 +469,12 @@ internal class LineEditTheme : BaseControlTheme
|
||||
}
|
||||
{
|
||||
var errorStyle = new Style(selector => selector.Nesting().Class(LineEdit.ErrorPC));
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorError);
|
||||
errorStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
var editKernelDecoratorStyle =
|
||||
new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart));
|
||||
@ -480,6 +495,13 @@ internal class LineEditTheme : BaseControlTheme
|
||||
{
|
||||
var warningStyle = new Style(selector => selector.Nesting().Class(LineEdit.WarningPC));
|
||||
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
warningStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
var editKernelDecoratorStyle =
|
||||
new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart));
|
||||
editKernelDecoratorStyle.Add(Border.BorderBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
@ -504,9 +526,15 @@ internal class LineEditTheme : BaseControlTheme
|
||||
var borderlessStyle =
|
||||
new Style(selector => selector.Nesting()
|
||||
.PropertyEquals(LineEdit.StyleVariantProperty, TextBoxVariant.Borderless));
|
||||
|
||||
|
||||
{
|
||||
var errorStyle = new Style(selector => selector.Nesting().Class(LineEdit.ErrorPC));
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorError);
|
||||
errorStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
var scrollViewerStyle = new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart)
|
||||
.Descendant().OfType<ScrollViewer>());
|
||||
scrollViewerStyle.Add(ScrollViewer.ForegroundProperty, GlobalResourceKey.ColorErrorText);
|
||||
@ -516,6 +544,12 @@ internal class LineEditTheme : BaseControlTheme
|
||||
|
||||
{
|
||||
var warningStyle = new Style(selector => selector.Nesting().Class(LineEdit.WarningPC));
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
warningStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
var scrollViewerStyle = new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart)
|
||||
.Descendant().OfType<ScrollViewer>());
|
||||
scrollViewerStyle.Add(ScrollViewer.ForegroundProperty, GlobalResourceKey.ColorWarningText);
|
||||
@ -553,6 +587,13 @@ internal class LineEditTheme : BaseControlTheme
|
||||
{
|
||||
var errorStyle = new Style(selector => selector.Nesting().Class(LineEdit.ErrorPC));
|
||||
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorError);
|
||||
errorStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
var editKernelDecoratorStyle =
|
||||
new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart));
|
||||
|
||||
@ -582,6 +623,13 @@ internal class LineEditTheme : BaseControlTheme
|
||||
|
||||
{
|
||||
var warningStyle = new Style(selector => selector.Nesting().Class(LineEdit.WarningPC));
|
||||
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
warningStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
var editKernelDecoratorStyle =
|
||||
new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart));
|
||||
@ -597,6 +645,14 @@ internal class LineEditTheme : BaseControlTheme
|
||||
var focusStyle = new Style(selector => selector.Nesting().Class(StdPseudoClass.FocusWithIn));
|
||||
focusStyle.Add(Border.BorderBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
focusStyle.Add(Border.BackgroundProperty, LineEditResourceKey.ActiveBg);
|
||||
|
||||
{
|
||||
var innerContentIconStyle = new Style(selector => Selectors.Or(selector.Nesting().Template().Name(LeftInnerContentPart).Descendant().OfType<PathIcon>(),
|
||||
selector.Nesting().Template().Name(RightInnerContentPart).Descendant().OfType<PathIcon>()));
|
||||
innerContentIconStyle.Add(PathIcon.NormalFilledBrushProperty, GlobalResourceKey.ColorWarning);
|
||||
focusStyle.Add(innerContentIconStyle);
|
||||
}
|
||||
|
||||
editKernelDecoratorStyle.Add(focusStyle);
|
||||
|
||||
var scrollViewerStyle = new Style(selector => selector.Nesting().Template().Name(LineEditKernelDecoratorPart)
|
||||
|
Loading…
Reference in New Issue
Block a user