使用圆形样式时,是否可以增加进度条的厚度? 我在github上找不到关于它的任何文档。
答案 0 :(得分:1)
基于罗伯特·哈维(Robert Harvey)的答案,我找到了一个更好的解决方案。我创建了一个更改厚度值的行为,而不是复制整个样式,而是通过另一个硬编码值来更改硬编码值。
public class CircularProgressBarBehavior : StyleBehavior<ProgressBar, CircularProgressBarBehavior>
{
public static readonly DependencyProperty StrokeThicknessProperty =
DependencyProperty.RegisterAttached("StrokeThickness", typeof(double), typeof(CircularProgressBarBehavior), new PropertyMetadata(3d));
public static double GetStrokeThickness(DependencyObject dependencyObject)
{
return (double) dependencyObject.GetValue(StrokeThicknessProperty);
}
protected override void OnAttached()
{
base.OnAttached();
// ReSharper disable once CompareOfFloatsByEqualityOperator
var path = AssociatedObject.GetChildren<Path>().FirstOrDefault(e => e.Name.Equals("Path"));
if (path != null)
path.StrokeThickness = GetStrokeThickness(AssociatedObject);
}
public static void SetStrokeThickness(DependencyObject dependencyObject, double value)
{
dependencyObject.SetValue(StrokeThicknessProperty, value);
}
}
答案 1 :(得分:1)
要解决此问题,而无需在XAML之外做任何事情或修改模板的方法是使用以下组合:
在下面的示例中,我通常会尝试缩放和宽度/高度之间的划分,直到对外观感到满意为止。
<ProgressBar Style="{StaticResource MaterialDesignCircularProgressBar}" Width="50" Height="50">
<ProgressBar.LayoutTransform>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="2" ScaleY="2" />
</ProgressBar.LayoutTransform>
</ProgressBar>