WpfApp1/CircularMenu.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace WpfApp1
{
[TemplatePart(Name = "PART_Rim", Type = typeof(Path))]
public class CircularMenuItem: HeaderedItemsControl
{
static CircularMenuItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CircularMenuItem), new FrameworkPropertyMetadata(typeof(CircularMenuItem)));
}
public double ArcWidth
{
get { return (double)GetValue(ArcWidthProperty); }
set { SetValue(ArcWidthProperty, value); }
}
// Using a DependencyProperty as the backing store for ArcWidth. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ArcWidthProperty =
DependencyProperty.Register("ArcWidth", typeof(double), typeof(CircularMenuItem), new PropertyMetadata(0d));
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this._contentOutBorder = GetTemplateChild("PART_ContentOutBorder") as Border;
this._contentInBorder = GetTemplateChild("PART_ContentInBorder") as Border;
this._partRim = GetTemplateChild("PART_Rim") as Path;
_parentControl = ItemsControlFromItemContainer(this);
_index = _parentControl.Items.IndexOf(this);
_count = _parentControl.Items.Count;
if(this._partRim != null)
{
double r = Math.Min(this._parentControl.ActualHeight, this._parentControl.ActualWidth) / 2;
Paint(r - _overflow - iWidth, r - _overflow, 6, _overflow, true);
}
}
int _index = 0;
int _count = 0;
double _overflow = 10d;
ItemsControl _parentControl = null;
Path _partRim = null;
Border _contentOutBorder = null;
Border _contentInBorder = null;
double iWidth = 50;
void Paint(double inRadius, double outRadius, int count, double overflow, bool AutoRotate)
{
double iDiameter = inRadius * 2;
double oDiameter = outRadius * 2;
Vector iPoint = new Vector(iWidth, iWidth);
double transformY = (outRadius - inRadius) / 2 + inRadius; //内容在Y轴偏移量
后面还有 63 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。