【问题标题】:Change size of Progress Bar更改进度条的大小
【发布时间】:2016-10-01 07:15:24
【问题描述】:

我有进度条但是点太小了,我怎样才能把它变大? 我没有发现任何属性女巫可以改变点的大小。高度/宽度仅改变点可以移动的区域

Xaml代码

<Grid // here width ="2560" height="1600"
  <ProgressBar
        Grid.Row="0"
        Grid.Column="1"
        IsIndeterminate="True"
        Visibility="{Binding MainInstance.Loading, Converter={StaticResource BooleanToVisibilityConverter}}" 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Stretch"/>
</Grid

【问题讨论】:

  • ProgressBar 块的大小是宽度/高度的基础。
  • @Joel 将宽度/高度从 Auto(300/4) 更改为 1000/1000,并且没有改变点,只是在不同的区域移动,但点很小

标签: c# xaml win-universal-app uwp


【解决方案1】:

有几种方法可以解决这个问题,取决于你选择哪一种:

  • 更改ProgressBar的默认样式,增加EllipseWidth和Height属性。您可以在 Blend 中执行此操作,也可以从
  • 复制样式

C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.14393.0\Generic\generic.xaml

  • 使用ViewBox 控件环绕ProgressBar。此控件将所有内容调整为可用大小。
  • 使用您自己的模板设置属性创建模板化控件。

我创建了一个小的sample on GitHub 来向您展示所有可能性的代码。

【讨论】:

  • 比我还好。
  • 比我还好。
  • ViewBox 有问题。当我制作大宽度和小高度时,我的圆圈大于 ViewBox 高度如何解决?我希望它看起来像你的例子
  • 你可以在 GitHub 上看到代码(我现在不在 Win10 上)。这是关于 ViewBox 如何在 WPF 中工作的explanation(在 UWP 中非常相似)。但在我看来,编辑模板是一个更好的解决方案。
【解决方案2】:

更改 ProgressBar 点大小的最简单方法是使用 ScaleTransform:

<ProgressBar ...>
    <ProgressBar.RenderTransform>
        <ScaleTransform ScaleX="2" ScaleY="2" />
    </ProgressBar.RenderTransform>
</ProgressBar>

【讨论】:

    【解决方案3】:

    ProgressRing 不支持任何属性来改变点的宽度和高度,当 ProgressRing 有更大的空间时,点会最大。 您可以使用 Grid 获得 ProgressBar 并且 Grid 是永久位置。 你使用Grid.Row="0" Grid.Column="1" VerticalAlignment="Top",你应该在Grid中编写代码。你应该给Grid很大的空间。 ProgressBar 应该使用HorizontalAlignment="Stretch" 和 VerticalAlignment 相同。您的宽度和高度很大,点的宽度和高度也很大。

        <ProgressRing Margin="10,10,10,10"
                     IsActive="True"
                     Visibility="{x:Bind View.Visibility,Mode=OneWay}"
                     HorizontalAlignment="Stretch"
                     VerticalAlignment="Stretch" />
    

    我写在顶部的网格中。你可以看到我的应用程序的 ProgressRing 有一个大点。

    http://jycloud.9uads.com/web/GetObject.aspx?filekey=16bcfec973e910632e04b3990c274a1c

    【讨论】:

    • 网格单元 (0,1) 有很多空间,我更新了我的代码。这样对吗?但我的点还是小
    • 您尝试设置 Grid width=100 或更大。ProgressRing 应将 Horizo​​ntalAlignment 和 verticalAlignment 设置为 Stretch 而不是任何宽度、高度和边距。
    • 我做到了,我的网格是 2560/1600。你可以看到我的 XAML 代码。但是小点和多点不是一个环,只是一条线,因为 IsIndeterminate="True"
    • 您确定 ProgressRing 的网格是 2560/1600 还是您尝试将 ProgressRing 设置为 2560/1600
    • Grid.Row="0" 和 Grid.Column="1" 使 ProgressRing 的宽度与 Grid 不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    相关资源
    最近更新 更多