调整尺寸方法改变了几何对象的边距、高度、宽度,因此调整尺寸命令带有边距的变化、高度的变化、宽度的变化以及几何对象的引用。在调整尺寸的命令中,Execute方法通过增加边距变化,高度变化和宽度变化改变几何对象UIelement,而Unexecute方法通过减去刚应用的变化来撤销操作。这样,它减掉了几何对象UIelement的边距变化、高度变化和宽度变化。
class InsertCommand : ICommand
{
private FrameworkElement _UiElement;
private Canvas _Container;
public InsertCommand(FrameworkElement uiElement, Canvas container)
{
_UiElement = uiElement;
_Container = container;
}
#region ICommand Members
public void Execute()
{
if (!_Container.Children.Contains(_UiElement))
{
_Container.Children.Add(_UiElement);
}
}
public void UnExecute()
{
_Container.Children.Remove(_UiElement);
}
#endregion
}
{
private FrameworkElement _UiElement;
private Canvas _Container;
public InsertCommand(FrameworkElement uiElement, Canvas container)
{
_UiElement = uiElement;
_Container = container;
}
#region ICommand Members
public void Execute()
{
if (!_Container.Children.Contains(_UiElement))
{
_Container.Children.Add(_UiElement);
}
}
public void UnExecute()
{
_Container.Children.Remove(_UiElement);
}
#endregion
}
插入操作插入一个几何对象到面板,插入命令包含几何对象和对Canvas的引用。在插入命令中,Execute方法添加对象到画布,而Unexecute方法从画布中删除该对象。
class DeleteCommand : ICommand
{
private FrameworkElement _UiElement;
private Canvas _Container;
public DeleteCommand(FrameworkElement uiElement, Canvas container)
{
_UiElement = uiElement;
_Container = container;
}
#region ICommand Members
public void Execute()
{
_Container.Children.Remove(_UiElement);
}
public void UnExecute()
{
_Container.Children.Add(_UiElement);
}
#endregion
}
{
private FrameworkElement _UiElement;
private Canvas _Container;
public DeleteCommand(FrameworkElement uiElement, Canvas container)
{
_UiElement = uiElement;
_Container = container;
}
#region ICommand Members
public void Execute()
{
_Container.Children.Remove(_UiElement);
}
public void UnExecute()
{
_Container.Children.Add(_UiElement);
}
#endregion
}
因为删除操作从面板中删除一个几何对象,因此删除命令带有几何对象和画布的应用。在删除对象中,Execute方法从画布中删除对象,而Unexecute方法添加这个对象到画布。