本文整理汇总了C#中System.Windows.Media.LineSegment.Freeze方法的典型用法代码示例。如果您正苦于以下问题:C# LineSegment.Freeze方法的具体用法?C# LineSegment.Freeze怎么用?C# LineSegment.Freeze使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Media.LineSegment
的用法示例。
在下文中一共展示了LineSegment.Freeze方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InsertionAdorner
// Create the pen and triangle in a static constructor and freeze them to improve performance.
static InsertionAdorner()
{
pen = new Pen
{
Brush = Brushes.Gray,
Thickness = 2
};
pen.Freeze();
LineSegment firstLine = new LineSegment(new Point(0, -5), false);
firstLine.Freeze();
LineSegment secondLine = new LineSegment(new Point(0, 5), false);
secondLine.Freeze();
PathFigure figure = new PathFigure
{
StartPoint = new Point(5, 0)
};
figure.Segments.Add(firstLine);
figure.Segments.Add(secondLine);
figure.Freeze();
triangle = new PathGeometry();
triangle.Figures.Add(figure);
triangle.Freeze();
}
示例2: InsertionAdorner
/// <summary>
/// Create the pen and triangle in a static constructor and freeze them to improve performance.
/// </summary>
static InsertionAdorner()
{
Pen = new Pen { Brush = Brushes.SkyBlue, Thickness = LineThickness };
Pen.Freeze();
var firstLine = new LineSegment(new Point(0, -TriangleWidth), false);
firstLine.Freeze();
var secondLine = new LineSegment(new Point(0, TriangleWidth), false);
secondLine.Freeze();
var figure = new PathFigure {StartPoint = new Point(TriangleWidth, 0)};
figure.Segments.Add(firstLine);
figure.Segments.Add(secondLine);
figure.Freeze();
Triangle = new PathGeometry();
Triangle.Figures.Add(figure);
Triangle.Freeze();
}
示例3: InsertionAdorner
static InsertionAdorner()
{
InsertionAdorner.pen.Freeze();
LineSegment lineSegment1 = new LineSegment(new Point(0.0, -5.0), false);
lineSegment1.Freeze();
LineSegment lineSegment2 = new LineSegment(new Point(0.0, 5.0), false);
lineSegment2.Freeze();
PathFigure pathFigure = new PathFigure()
{
StartPoint = new Point(5.0, 0.0)
};
pathFigure.Segments.Add((PathSegment) lineSegment1);
pathFigure.Segments.Add((PathSegment) lineSegment2);
pathFigure.Freeze();
InsertionAdorner.triangle = new PathGeometry();
InsertionAdorner.triangle.Figures.Add(pathFigure);
InsertionAdorner.triangle.Freeze();
}
示例4: InsertionAdorner
/// <summary>
/// Initializes static members of the <see cref="InsertionAdorner" /> class.
/// </summary>
static InsertionAdorner()
{
// Create the pen and triangle in a static constructor and freeze them to improve performance.
Pen = new Pen { Brush = Brushes.Gray, Thickness = 2 };
Pen.Freeze();
var firstLine = new LineSegment(new Point(0, -5), false);
firstLine.Freeze();
var secondLine = new LineSegment(new Point(0, 5), false);
secondLine.Freeze();
var figure = new PathFigure { StartPoint = new Point(5, 0) };
figure.Segments.Add(firstLine);
figure.Segments.Add(secondLine);
figure.Freeze();
Triangle = new PathGeometry();
Triangle.Figures.Add(figure);
Triangle.Freeze();
}
示例5: DropTargetInsertionAdorner
static DropTargetInsertionAdorner()
{
// Create the pen and triangle in a static constructor and freeze them to improve performance.
const int triangleSize = 3;
m_Pen = new Pen(Brushes.Gray, 2);
m_Pen.Freeze();
LineSegment firstLine = new LineSegment(new Point(0, -triangleSize), false);
firstLine.Freeze();
LineSegment secondLine = new LineSegment(new Point(0, triangleSize), false);
secondLine.Freeze();
PathFigure figure = new PathFigure { StartPoint = new Point(triangleSize, 0) };
figure.Segments.Add(firstLine);
figure.Segments.Add(secondLine);
figure.Freeze();
m_Triangle = new PathGeometry();
m_Triangle.Figures.Add(figure);
m_Triangle.Freeze();
}
示例6: DropTargetMetroInsertionAdorner
static DropTargetMetroInsertionAdorner()
{
// Create the pen and triangle in a static constructor and freeze them to improve performance.
const int triangleSize = 5;
var color = (Color) ThemeManager.DetectAppStyle(Application.Current).Item2.Resources["AccentColor"];
m_Pen = new Pen(new SolidColorBrush(color), 2);
m_Pen.Freeze();
var firstLine = new LineSegment(new Point(0, -triangleSize), false);
firstLine.Freeze();
var secondLine = new LineSegment(new Point(0, triangleSize), false);
secondLine.Freeze();
var figure = new PathFigure {StartPoint = new Point(triangleSize, 0)};
figure.Segments.Add(firstLine);
figure.Segments.Add(secondLine);
figure.Freeze();
m_Triangle = new PathGeometry();
m_Triangle.Figures.Add(figure);
m_Triangle.Freeze();
}
示例7: MakeLineSegment
static LineSegment MakeLineSegment(double x, double y)
{
LineSegment ls = new LineSegment(new Point(x, y), true);
ls.Freeze();
return ls;
}
示例8: DrawBackgound
/// <summary>
/// Draw the hatches and the transparent area where isn't covering the elements.
/// </summary>
/// <param name="drawingContext"></param>
private void DrawBackgound(DrawingContext drawingContext)
{
PathGeometry hatchGeometry = null;
Geometry rectGeometry = null;
int count = _elementsBounds.Count;
if ( count != 0 )
{
// Create a union collection of the element regions.
for ( int i = 0; i < count; i++ )
{
Rect hatchRect = _elementsBounds[i];
if ( hatchRect.IsEmpty )
{
continue;
}
hatchRect.Inflate(HatchBorderMargin / 2, HatchBorderMargin / 2);
if ( hatchGeometry == null )
{
PathFigure path = new PathFigure();
path.StartPoint = new Point(hatchRect.Left, hatchRect.Top);
PathSegmentCollection segments = new PathSegmentCollection();
PathSegment line = new LineSegment(new Point(hatchRect.Right, hatchRect.Top), true);
line.Freeze();
segments.Add(line);
line = new LineSegment(new Point(hatchRect.Right, hatchRect.Bottom), true);
line.Freeze();
segments.Add(line);
line = new LineSegment(new Point(hatchRect.Left, hatchRect.Bottom), true);
line.Freeze();
segments.Add(line);
line = new LineSegment(new Point(hatchRect.Left, hatchRect.Top), true);
line.Freeze();
segments.Add(line);
segments.Freeze();
path.Segments = segments;
path.IsClosed = true;
path.Freeze();
hatchGeometry = new PathGeometry();
hatchGeometry.Figures.Add(path);
}
else
{
rectGeometry = new RectangleGeometry(hatchRect);
rectGeometry.Freeze();
hatchGeometry = Geometry.Combine(hatchGeometry, rectGeometry, GeometryCombineMode.Union, null);
}
}
}
// Then, create a region which equals to "SelectionFrame - element1 bounds - element2 bounds - ..."
GeometryGroup backgroundGeometry = new GeometryGroup( );
GeometryCollection geometryCollection = new GeometryCollection();
// Add the entile rectanlge to the group.
rectGeometry = new RectangleGeometry(new Rect(0, 0, RenderSize.Width, RenderSize.Height));
rectGeometry.Freeze();
geometryCollection.Add(rectGeometry);
// Add the union of the element rectangles. Then the group will do oddeven operation.
Geometry outlineGeometry = null;
if ( hatchGeometry != null )
{
hatchGeometry.Freeze();
outlineGeometry = hatchGeometry.GetOutlinedPathGeometry();
outlineGeometry.Freeze();
if ( count == 1 && ((InkCanvasInnerCanvas)AdornedElement).InkCanvas.GetSelectedStrokes().Count == 0 )
{
geometryCollection.Add(outlineGeometry);
}
}
geometryCollection.Freeze();
backgroundGeometry.Children = geometryCollection;
backgroundGeometry.Freeze();
// Then, draw the region which may contain holes so that the elements cannot be covered.
// After that, the underneath elements can receive the messages.
#if DEBUG_OUTPUT
// Draw the debug feedback
drawingContext.DrawGeometry(new SolidColorBrush(Color.FromArgb(128, 255, 255, 0)), null, backgroundGeometry);
#else
//.........这里部分代码省略.........
示例9: RenderTheme
private void RenderTheme(DrawingContext dc)
{
Size size = RenderSize;
bool isClickable = IsClickable && IsEnabled;
bool isPressed = isClickable && IsPressed;
ListSortDirection? sortDirection = SortDirection;
bool isSorted = sortDirection != null;
bool horizontal = Orientation == Orientation.Horizontal;
Brush background = EnsureControlBrush();
Brush light = SystemColors.ControlLightBrush;
Brush dark = SystemColors.ControlDarkBrush;
bool shouldDrawRight = true;
bool shouldDrawBottom = true;
bool usingSeparatorBrush = false;
Brush darkDarkRight = null;
if (!horizontal)
{
if (SeparatorVisibility == Visibility.Visible && SeparatorBrush != null)
{
darkDarkRight = SeparatorBrush;
usingSeparatorBrush = true;
}
else
{
shouldDrawRight = false;
}
}
else
{
darkDarkRight = SystemColors.ControlDarkDarkBrush;
}
Brush darkDarkBottom = null;
if (horizontal)
{
if (SeparatorVisibility == Visibility.Visible && SeparatorBrush != null)
{
darkDarkBottom = SeparatorBrush;
usingSeparatorBrush = true;
}
else
{
shouldDrawBottom = false;
}
}
else
{
darkDarkBottom = SystemColors.ControlDarkDarkBrush;
}
EnsureCache((int)ClassicFreezables.NumFreezables);
// Draw the background
dc.DrawRectangle(background, null, new Rect(0.0, 0.0, size.Width, size.Height));
if ((size.Width > 3.0) && (size.Height > 3.0))
{
// Draw the border
if (isPressed)
{
dc.DrawRectangle(dark, null, new Rect(0.0, 0.0, size.Width, 1.0));
dc.DrawRectangle(dark, null, new Rect(0.0, 0.0, 1.0, size.Height));
dc.DrawRectangle(dark, null, new Rect(0.0, Max0(size.Height - 1.0), size.Width, 1.0));
dc.DrawRectangle(dark, null, new Rect(Max0(size.Width - 1.0), 0.0, 1.0, size.Height));
}
else
{
dc.DrawRectangle(light, null, new Rect(0.0, 0.0, 1.0, Max0(size.Height - 1.0)));
dc.DrawRectangle(light, null, new Rect(0.0, 0.0, Max0(size.Width - 1.0), 1.0));
if (shouldDrawRight)
{
if (!usingSeparatorBrush)
{
dc.DrawRectangle(dark, null, new Rect(Max0(size.Width - 2.0), 1.0, 1.0, Max0(size.Height - 2.0)));
}
dc.DrawRectangle(darkDarkRight, null, new Rect(Max0(size.Width - 1.0), 0.0, 1.0, size.Height));
}
if (shouldDrawBottom)
{
if (!usingSeparatorBrush)
{
dc.DrawRectangle(dark, null, new Rect(1.0, Max0(size.Height - 2.0), Max0(size.Width - 2.0), 1.0));
}
dc.DrawRectangle(darkDarkBottom, null, new Rect(0.0, Max0(size.Height - 1.0), size.Width, 1.0));
}
}
}
if (isSorted && (size.Width > 14.0) && (size.Height > 10.0))
{
// If sorted, draw an arrow on the right
TranslateTransform positionTransform = new TranslateTransform(size.Width - 15.0, (size.Height - 5.0) * 0.5);
positionTransform.Freeze();
dc.PushTransform(positionTransform);
//.........这里部分代码省略.........
示例10: RenderTheme
private void RenderTheme(DrawingContext dc)
{
Size size = RenderSize;
bool horizontal = Orientation == Orientation.Horizontal;
bool isClickable = IsClickable && IsEnabled;
bool isHovered = isClickable && IsHovered;
bool isPressed = isClickable && IsPressed;
ListSortDirection? sortDirection = SortDirection;
bool isSorted = sortDirection != null;
bool isSelected = IsSelected;
EnsureCache((int)RoyaleFreezables.NumFreezables);
if (horizontal)
{
// When horizontal, rotate the rendering by -90 degrees
Matrix m1 = new Matrix();
m1.RotateAt(-90.0, 0.0, 0.0);
Matrix m2 = new Matrix();
m2.Translate(0.0, size.Height);
MatrixTransform horizontalRotate = new MatrixTransform(m1 * m2);
horizontalRotate.Freeze();
dc.PushTransform(horizontalRotate);
double temp = size.Width;
size.Width = size.Height;
size.Height = temp;
}
// Draw the background
RoyaleFreezables backgroundType = isPressed ? RoyaleFreezables.PressedBackground : isHovered ? RoyaleFreezables.HoveredBackground : RoyaleFreezables.NormalBackground;
LinearGradientBrush background = (LinearGradientBrush)GetCachedFreezable((int)backgroundType);
if (background == null)
{
background = new LinearGradientBrush();
background.StartPoint = new Point();
background.EndPoint = new Point(0.0, 1.0);
if (isPressed)
{
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xB9, 0xB9, 0xC8), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xEC, 0xEC, 0xF3), 0.1));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xEC, 0xEC, 0xF3), 1.0));
}
else if (isHovered || isSelected)
{
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFE, 0xFE, 0xFE), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFE, 0xFE, 0xFE), 0.85));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xBD, 0xBE, 0xCE), 1.0));
}
else
{
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xF9, 0xFA, 0xFD), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xF9, 0xFA, 0xFD), 0.85));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xBD, 0xBE, 0xCE), 1.0));
}
background.Freeze();
CacheFreezable(background, (int)backgroundType);
}
dc.DrawRectangle(background, null, new Rect(0.0, 0.0, size.Width, size.Height));
if (isHovered && !isPressed && (size.Width >= 6.0) && (size.Height >= 4.0))
{
// When hovered, there is a colored tab at the bottom
TranslateTransform positionTransform = new TranslateTransform(0.0, size.Height - 3.0);
positionTransform.Freeze();
dc.PushTransform(positionTransform);
PathGeometry tabGeometry = new PathGeometry();
PathFigure tabFigure = new PathFigure();
tabFigure.StartPoint = new Point(0.5, 0.5);
LineSegment line = new LineSegment(new Point(size.Width - 0.5, 0.5), true);
line.Freeze();
tabFigure.Segments.Add(line);
ArcSegment arc = new ArcSegment(new Point(size.Width - 2.5, 2.5), new Size(2.0, 2.0), 90.0, false, SweepDirection.Clockwise, true);
arc.Freeze();
tabFigure.Segments.Add(arc);
line = new LineSegment(new Point(2.5, 2.5), true);
line.Freeze();
tabFigure.Segments.Add(line);
arc = new ArcSegment(new Point(0.5, 0.5), new Size(2.0, 2.0), 90.0, false, SweepDirection.Clockwise, true);
arc.Freeze();
tabFigure.Segments.Add(arc);
tabFigure.IsClosed = true;
tabFigure.Freeze();
tabGeometry.Figures.Add(tabFigure);
tabGeometry.Freeze();
Pen tabStroke = (Pen)GetCachedFreezable((int)RoyaleFreezables.TabStroke);
if (tabStroke == null)
//.........这里部分代码省略.........
示例11: RenderAeroNormalColor
private void RenderAeroNormalColor(DrawingContext dc)
{
Size size = RenderSize;
bool horizontal = Orientation == Orientation.Horizontal;
bool isClickable = IsClickable && IsEnabled;
bool isHovered = isClickable && IsHovered;
bool isPressed = isClickable && IsPressed;
ListSortDirection? sortDirection = SortDirection;
bool isSorted = sortDirection != null;
bool isSelected = IsSelected;
bool hasBevel = (!isHovered && !isPressed && !isSorted && !isSelected);
EnsureCache((int)AeroFreezables.NumFreezables);
if (horizontal)
{
// When horizontal, rotate the rendering by -90 degrees
Matrix m1 = new Matrix();
m1.RotateAt(-90.0, 0.0, 0.0);
Matrix m2 = new Matrix();
m2.Translate(0.0, size.Height);
MatrixTransform horizontalRotate = new MatrixTransform(m1 * m2);
horizontalRotate.Freeze();
dc.PushTransform(horizontalRotate);
double temp = size.Width;
size.Width = size.Height;
size.Height = temp;
}
if (hasBevel)
{
// This is a highlight that can be drawn by just filling the background with the color.
// It will be seen through the gab between the border and the background.
LinearGradientBrush bevel = (LinearGradientBrush)GetCachedFreezable((int)AeroFreezables.NormalBevel);
if (bevel == null)
{
bevel = new LinearGradientBrush();
bevel.StartPoint = new Point();
bevel.EndPoint = new Point(0.0, 1.0);
bevel.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF), 0.0));
bevel.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF), 0.4));
bevel.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFC, 0xFC, 0xFD), 0.4));
bevel.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFB, 0xFC, 0xFC), 1.0));
bevel.Freeze();
CacheFreezable(bevel, (int)AeroFreezables.NormalBevel);
}
dc.DrawRectangle(bevel, null, new Rect(0.0, 0.0, size.Width, size.Height));
}
// Fill the background
AeroFreezables backgroundType = AeroFreezables.NormalBackground;
if (isPressed)
{
backgroundType = AeroFreezables.PressedBackground;
}
else if (isHovered)
{
backgroundType = AeroFreezables.HoveredBackground;
}
else if (isSorted || isSelected)
{
backgroundType = AeroFreezables.SortedBackground;
}
LinearGradientBrush background = (LinearGradientBrush)GetCachedFreezable((int)backgroundType);
if (background == null)
{
background = new LinearGradientBrush();
background.StartPoint = new Point();
background.EndPoint = new Point(0.0, 1.0);
switch (backgroundType)
{
case AeroFreezables.NormalBackground:
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xF7, 0xF8, 0xFA), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xF1, 0xF2, 0xF4), 1.0));
break;
case AeroFreezables.PressedBackground:
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xBC, 0xE4, 0xF9), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xBC, 0xE4, 0xF9), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0x8D, 0xD6, 0xF7), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0x8A, 0xD1, 0xF5), 1.0));
break;
case AeroFreezables.HoveredBackground:
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xE3, 0xF7, 0xFF), 0.0));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xE3, 0xF7, 0xFF), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xBD, 0xED, 0xFF), 0.4));
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xB7, 0xE7, 0xFB), 1.0));
break;
case AeroFreezables.SortedBackground:
background.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, 0xF2, 0xF9, 0xFC), 0.0));
//.........这里部分代码省略.........
示例12: CreateStrokeEraserDrawing
/// <summary>
/// Custom StrokeEraser Drawing
/// </summary>
/// <returns></returns>
private static Drawing CreateStrokeEraserDrawing()
{
DrawingGroup drawingGroup = new DrawingGroup();
DrawingContext dc = null;
try
{
dc = drawingGroup.Open();
LinearGradientBrush brush1 = new LinearGradientBrush(
Color.FromRgb(240, 242, 255), // Start Color
Color.FromRgb(180, 207, 248), // End Color
45f // Angle
);
brush1.Freeze();
SolidColorBrush brush2 = new SolidColorBrush(Color.FromRgb(180, 207, 248));
brush2.Freeze();
Pen pen1 = new Pen(Brushes.Gray, 0.7);
pen1.Freeze();
PathGeometry pathGeometry = new PathGeometry();
PathFigure path = new PathFigure();
path.StartPoint = new Point(5, 5);
LineSegment segment = new LineSegment(new Point(16, 5), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(26, 15), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(15, 15), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(5, 5), true);
segment.Freeze();
path.Segments.Add(segment);
path.IsClosed = true;
path.Freeze();
pathGeometry.Figures.Add(path);
path = new PathFigure();
path.StartPoint = new Point(5, 5);
segment = new LineSegment(new Point(5, 10), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(15, 19), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(15, 15), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(5, 5), true);
segment.Freeze();
path.Segments.Add(segment);
path.IsClosed = true;
path.Freeze();
pathGeometry.Figures.Add(path);
pathGeometry.Freeze();
PathGeometry pathGeometry1 = new PathGeometry();
path = new PathFigure();
path.StartPoint = new Point(15, 15);
segment = new LineSegment(new Point(15, 19), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(26, 19), true);
segment.Freeze();
path.Segments.Add(segment);
segment = new LineSegment(new Point(26, 15), true);
segment.Freeze();
path.Segments.Add(segment);
segment.Freeze();
segment = new LineSegment(new Point(15, 15), true);
path.Segments.Add(segment);
path.IsClosed = true;
path.Freeze();
pathGeometry1.Figures.Add(path);
pathGeometry1.Freeze();
//.........这里部分代码省略.........