【问题标题】:Is there any way to make default progressbar into vertical one?有没有办法让默认进度条变成垂直的?
【发布时间】:2018-08-28 23:20:45
【问题描述】:

我想要一个进度条,而不是从左到右,而是从下到上填充。有没有什么属性或者方法可以将UWP控件提供的默认进度条转换成垂直进度条?

*编辑

看看当渲染变换被应用时——进度条从网格中流出。

这是代码!

<StackPanel Background="{StaticResource SystemControlAcrylicWindowBrush}" Padding="40">

    <Grid BorderBrush="Black" BorderThickness="1,1,1,1" Width="220" Height="200">
        <ProgressBar HorizontalAlignment="Stretch"
                     VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5"
                     Value="60">
            <ProgressBar.RenderTransform>
                <CompositeTransform Rotation="0"/>
            </ProgressBar.RenderTransform>
        </ProgressBar>
    </Grid>

    <Grid BorderBrush="Black" BorderThickness="1,1,1,1" Width="220" Height="200" Margin="40">
        <ProgressBar HorizontalAlignment="Stretch"
                     VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5"
                     Value="60">
            <ProgressBar.RenderTransform>
                <CompositeTransform Rotation="-90"/>
            </ProgressBar.RenderTransform>
        </ProgressBar>
    </Grid>

</StackPanel>

还是没修好,换了宽高!

去掉了边距和内边距,还是不行!

【问题讨论】:

  • @mjwills 确实问题是一样的,我知道!但所提出的答案都没有奏效。 ProgressBar 没有方向属性,并且将 ProgressBar 旋转 90 度会扰乱矩形的流动(如 cmets 中所述)。
  • 你试过用RenderTransform吗?
  • 如果你把ProgressBar垂直放置了,你需要改变高度和宽度(Width="200" Height="220")。
  • 它不工作!

标签: c# xaml uwp


【解决方案1】:

UWP ProgressBar 没有 Orientation 属性。您不能在 UWP 中使用 progbar.Orientation = Orientation.Horizontal;。如果你想放置 ProgressBar 垂直,你可以使用RenderTransform 来实现。

<ProgressBar RenderTransformOrigin="0.5,0.5" 
             Maximum="200" 
             Value="50" 
             Width="200" 
             Background="LightGray"
             Foreground="Green"
             VerticalAlignment="Center" 
             HorizontalAlignment="Center">
    <ProgressBar.RenderTransform>
        <CompositeTransform Rotation="-90" />
    </ProgressBar.RenderTransform>
</ProgressBar>

【讨论】:

  • 嗯,问题是我正在使用具有可变宽度和高度的进度条。您还没有使用 height 属性,请尝试将其设置为某个值并将其放入网格中。那就看看进度条是怎么流出控件的吧!
  • 是的,我知道了,如果你设置高度值,进度条会变宽。原因是ProgressBar 垂直放置。你可以认为它是先设置高度,然后垂直放置。
  • 那么有什么出路吗?怎么解决?
  • 我认为缺乏沟通!我想通过自定义宽度和高度的进度条来实现某种功能,并且进度条从下到上填充。使用您的解决方案正在发生的事情是,当应用渲染转换时,包含在网格内的进度条现在开始异常流出;这是完全不可取的。这就是我首先提出这个问题的原因!
  • 如果将进度条放在一个水平堆栈中,右侧有一个按钮。当翻转到 -90 度时,此渲染变换是否会删除“右侧”的间距?
猜你喜欢
  • 1970-01-01
  • 2023-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多