// Gets the matrix that transforms the top tab geometries for position on left, right, or bottom private MatrixTransform GetTabTransform(ClassicBorderStyle style, double xOffset, double yOffset) { if (_tabCache == null) _tabCache = new TabGeometryCache(); if (_tabCache.Transform == null || xOffset != _tabCache.xOffset || yOffset != _tabCache.yOffset) { switch (style) { case ClassicBorderStyle.TabLeft: _tabCache.Transform = new MatrixTransform(new Matrix(0.0, 1.0, 1.0, 0.0, xOffset, yOffset)); break; case ClassicBorderStyle.TabRight: _tabCache.Transform = new MatrixTransform(new Matrix(0.0, -1.0, -1.0, 0.0, xOffset, yOffset)); break; case ClassicBorderStyle.TabBottom: _tabCache.Transform = new MatrixTransform(new Matrix(-1.0, 0.0, 0.0, -1.0, xOffset, yOffset)); break; } _tabCache.xOffset = xOffset; _tabCache.yOffset = yOffset; } return _tabCache.Transform; }
// Is this a tab style private bool IsTabStyle(ClassicBorderStyle style) { return style == ClassicBorderStyle.TabLeft || style == ClassicBorderStyle.TabTop || style == ClassicBorderStyle.TabRight || style == ClassicBorderStyle.TabBottom; }