mdi任务栏增加关闭功能
This commit is contained in:
parent
49b1ebcd5c
commit
5eb8c25799
@ -38,7 +38,8 @@ namespace CPF.Toolkit.Demo
|
|||||||
new MdiHost
|
new MdiHost
|
||||||
{
|
{
|
||||||
Size = SizeField.Fill,
|
Size = SizeField.Fill,
|
||||||
Attacheds = { { Grid.RowIndex,1 } }
|
Attacheds = { { Grid.RowIndex,1 } },
|
||||||
|
TaskBarPlacement = TaskBarPlacement.Top,
|
||||||
}.Assign(out var host),
|
}.Assign(out var host),
|
||||||
new WrapPanel
|
new WrapPanel
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using CPF.Drawing;
|
using CPF.Drawing;
|
||||||
using CPF.Platform;
|
using CPF.Platform;
|
||||||
using CPF.Shapes;
|
using CPF.Shapes;
|
||||||
|
using CPF.Styling;
|
||||||
using CPF.Toolkit.Dialogs;
|
using CPF.Toolkit.Dialogs;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -25,53 +26,13 @@ namespace CPF.Toolkit.Controls
|
|||||||
{
|
{
|
||||||
Size = SizeField.Fill,
|
Size = SizeField.Fill,
|
||||||
Background = "white",
|
Background = "white",
|
||||||
BorderFill = new SolidColorFill { Color = Color.Silver },
|
BorderFill = "silver",
|
||||||
BorderThickness = new Thickness(0, 1, 0, 0),
|
BorderThickness = new Thickness(0, 1, 0, 0),
|
||||||
BorderType = BorderType.BorderThickness,
|
BorderType = BorderType.BorderThickness,
|
||||||
ItemsPanel = new StackPanel { Orientation = Orientation.Horizontal },
|
ItemsPanel = new StackPanel { Orientation = Orientation.Horizontal },
|
||||||
ItemTemplate = new ListBoxItem
|
ItemTemplate = new TaskBarItem
|
||||||
{
|
{
|
||||||
Width = 100,
|
[nameof(TaskBarItem.CloseClick)] = new CommandDescribe((s, e) => (s.DataContext as MdiWindow).Close())
|
||||||
MarginRight = 1,
|
|
||||||
FontSize = 16f,
|
|
||||||
BorderFill = "Silver",
|
|
||||||
BorderThickness = new Thickness(1),
|
|
||||||
Margin = new ThicknessField(1),
|
|
||||||
CornerRadius = new CornerRadius(2),
|
|
||||||
IsAntiAlias = true,
|
|
||||||
UseLayoutRounding = true,
|
|
||||||
BorderType = BorderType.BorderThickness,
|
|
||||||
ContentTemplate = new ContentTemplate
|
|
||||||
{
|
|
||||||
Size = SizeField.Fill,
|
|
||||||
Content = "test"
|
|
||||||
//Content = new StackPanel
|
|
||||||
//{
|
|
||||||
// Orientation = Orientation.Horizontal,
|
|
||||||
// Size = SizeField.Fill,
|
|
||||||
// Children =
|
|
||||||
// {
|
|
||||||
// new TextBlock
|
|
||||||
// {
|
|
||||||
// //[nameof(TextBlock.Text)] = new BindingDescribe("Title",BindingMode.OneWay)
|
|
||||||
// Text = "test"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//},
|
|
||||||
},
|
|
||||||
//Content = new StackPanel
|
|
||||||
//{
|
|
||||||
// Size = SizeField.Fill,
|
|
||||||
// Orientation = Orientation.Horizontal,
|
|
||||||
// Children =
|
|
||||||
// {
|
|
||||||
// new TextBlock
|
|
||||||
// {
|
|
||||||
// [nameof(TextBlock.Text)] = new BindingDescribe("Title",BindingMode.OneWay)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//},
|
|
||||||
//[nameof(ListBoxItem.Content)] = new BindingDescribe("Title")
|
|
||||||
},
|
},
|
||||||
Items = this.TaskBarList,
|
Items = this.TaskBarList,
|
||||||
[nameof(ListBox.SelectedValue)] = new BindingDescribe(this, nameof(this.SelectWindow), BindingMode.TwoWay),
|
[nameof(ListBox.SelectedValue)] = new BindingDescribe(this, nameof(this.SelectWindow), BindingMode.TwoWay),
|
||||||
@ -281,5 +242,99 @@ namespace CPF.Toolkit.Controls
|
|||||||
}
|
}
|
||||||
ele.ZIndex = index + 1;
|
ele.ZIndex = index + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TaskBarItem : ListBoxItem
|
||||||
|
{
|
||||||
|
public event EventHandler CloseClick
|
||||||
|
{
|
||||||
|
add { AddHandler(value); }
|
||||||
|
remove { RemoveHandler(value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.Size = new SizeField(100, "90%");
|
||||||
|
this.Background = "white";
|
||||||
|
this.BorderFill = "gray";
|
||||||
|
this.BorderStroke = "1";
|
||||||
|
this.CornerRadius = new CornerRadius(2);
|
||||||
|
this.Margin = new ThicknessField(1);
|
||||||
|
this.IsAntiAlias = true;
|
||||||
|
this.UseLayoutRounding = true;
|
||||||
|
this.CommandContext = this;
|
||||||
|
this.Triggers.Add(new Trigger
|
||||||
|
{
|
||||||
|
Property = nameof(IsSelected),
|
||||||
|
Setters =
|
||||||
|
{
|
||||||
|
{ nameof(Background),nameof(Color.DodgerBlue) },
|
||||||
|
{ nameof(Foreground),"white" }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.Children.Add(new Grid
|
||||||
|
{
|
||||||
|
Size = SizeField.Fill,
|
||||||
|
ColumnDefinitions =
|
||||||
|
{
|
||||||
|
new ColumnDefinition{ },
|
||||||
|
new ColumnDefinition{ Width = 30 },
|
||||||
|
},
|
||||||
|
Children =
|
||||||
|
{
|
||||||
|
new TextBlock
|
||||||
|
{
|
||||||
|
Height = "auto",
|
||||||
|
TextTrimming = TextTrimming.CharacterEllipsis,
|
||||||
|
TextAlignment = TextAlignment.Center,
|
||||||
|
[nameof(TextBlock.Text)] = new BindingDescribe("Title"),
|
||||||
|
},
|
||||||
|
new Panel
|
||||||
|
{
|
||||||
|
Name = "close",
|
||||||
|
Attacheds = { { Grid.ColumnIndex,1 } },
|
||||||
|
MarginRight = 5,
|
||||||
|
Size = new SizeField(15,15),
|
||||||
|
CornerRadius = new CornerRadius(5),
|
||||||
|
Children =
|
||||||
|
{
|
||||||
|
new Line
|
||||||
|
{
|
||||||
|
MarginLeft = 2,
|
||||||
|
MarginTop = 2,
|
||||||
|
StartPoint = new Point(1, 1),
|
||||||
|
EndPoint = new Point(10, 10),
|
||||||
|
StrokeStyle = "2",
|
||||||
|
IsAntiAlias = true,
|
||||||
|
[nameof(Line.StrokeFill)] = new BindingDescribe(this,nameof(Foreground)),
|
||||||
|
},
|
||||||
|
new Line
|
||||||
|
{
|
||||||
|
MarginLeft = 2,
|
||||||
|
MarginTop = 2,
|
||||||
|
StartPoint = new Point(10, 1),
|
||||||
|
EndPoint = new Point(1, 10),
|
||||||
|
StrokeStyle = "2",
|
||||||
|
IsAntiAlias = true,
|
||||||
|
[nameof(Line.StrokeFill)] = new BindingDescribe(this,nameof(Foreground)),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Triggers =
|
||||||
|
{
|
||||||
|
new Trigger
|
||||||
|
{
|
||||||
|
Property = nameof(IsMouseOver),
|
||||||
|
Setters =
|
||||||
|
{
|
||||||
|
{ nameof(Background) ,"red" },
|
||||||
|
{ nameof(Foreground) ,"white" },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[nameof(Panel.MouseUp)] = new CommandDescribe((s,e) => this.RaiseEvent(e,nameof(this.CloseClick)))
|
||||||
|
},
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user