【问题标题】:C# WPF ProgressBar "default" heightC# WPF ProgressBar“默认”高度
【发布时间】:2013-08-22 16:31:31
【问题描述】:

在 WPF 中,当我在XAML 文件中放入一个ProgressBar 时,它的高度默认约为2 或3 个像素。

我应该设置什么高度以与其他 Windows 应用程序保持一致(并根据 dpi 分辨率等调整高度)?我尝试设置Height="auto",但结果是一样的。

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <DockPanel Name="dockPanel1">
        <ProgressBar Name="progressBar1" Value="33" DockPanel.Dock="Top"/>
        <TreeView Name="treeView1" />
    </DockPanel>
</Window>

【问题讨论】:

    标签: c# wpf progress-bar


    【解决方案1】:

    Windows 进度条指南有一个很好的开始提示,

    Recommended sizing and spacing

    万一链接消失:

    【讨论】:

    • “有趣”的是尺寸以 DLU 和像素的形式给出(我猜像素是使用 Windows 的默认参数从 DLU 转换而来的?),但不是 DVI(XAML 使用的) .哦,好吧。
    【解决方案2】:

    我相信其他控件的典型高度是 23。

    因此,对于您的进度条,请使用以下内容:

    <ProgressBar Name="progressBar1" Height="23" Value="33" DockPanel.Dock="Top"/>
    

    您可能希望根据进度条所在的上下文以及您希望它的可见度来向上或向下更改高度。我见过许多带有非常高的进度条的应用程序,因此用户肯定会看到它。只是取决于您希望它的外观。

    【讨论】:

    • 其他控件的典型高度为 23,默认字体和 DPI。只是说... @GeorgesDuperon:如果您想锚定某些东西,例如从操作系统继承其文本样式的标签或文本块,您可能希望让它决定高度。这完全取决于需求。
    • 我很确定 WPF 值不是以像素为单位,而是一个可用作基础的数字,WPF 会考虑 DPI 设置并按比例调整您设置的高度在 DPI 设置上。
    • 公平点,自从在网络领域工作以来,我忘记了设备独立单元。我仍然会使用其他东西作为锚点,而不是对值进行硬编码。
    • @Curtis 请参阅this thread,了解有关 WPF 的分辨率独立性的讨论。基本上,它确实可以正确调整,尽管它并没有按照您的假设进行。
    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多