【问题标题】:ViewBox font not legible to minimum resolutionViewBox 字体在最小分辨率下无法辨认
【发布时间】:2016-09-02 16:18:03
【问题描述】:

我使用ViewBox 来显示水平方向的标签列表并保持易读性,问题是当我将窗口减小到我设置为的最小分辨率时:800 我得到这个结果:

你怎么能看到我看不懂的内容。这种情况仅在窗口为最小分辨率时发生,在最大分辨率时ViewBox 工作得很好:

我不知道我是不是做错了什么。我从未使用过ViewBox,这是我的代码:

<Viewbox TextOptions.TextFormattingMode="Display" Stretch="Uniform" Grid.Row="1" Grid.Column="1" Grid.RowSpan="1">
    <StackPanel>
        <Grid Margin="0, 1, 0, 0">
            <Label Content="Foo" FontWeight="Bold"/>
            <Label Content="{Binding Path = EventLeague}" HorizontalAlignment="Center"/>
        </Grid>
        <Grid Margin="0,-10, 0, 0">
            <Label Content="Date" FontWeight="Bold"/>
            <Label Content="{Binding Path = EventDate}" HorizontalAlignment="Center"/>
        </Grid>
        <Grid Margin="0,-10, 0, 0">
            <Label Content="Week" FontWeight="Bold"/>
            <Label Content="{Binding Path = EventGameWeek}" HorizontalAlignment="Center"/>
         </Grid>
         <Grid Margin="0,-10, 0, 0">
             <Label Content="Home" FontWeight="Bold"/>
             <Label Content="{Binding Path = EventStart}" HorizontalAlignment="Center"/>
         </Grid>
         <Grid Margin="0,-10, 0, 0">
             <Label Content="Away" FontWeight="Bold"/>
             <Label Content="{Binding Path = EventStadium}" HorizontalAlignment="Center"/>
         </Grid>
     </StackPanel>  
  </Viewbox>

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您的网格没有行或列,这意味着所有内容都进入网格单元格 0,0 彼此重叠

    试试这个

    <Viewbox TextOptions.TextFormattingMode="Display" Stretch="Uniform" Grid.Row="1" Grid.Column="1" Grid.RowSpan="1" MinHeight="500"  MinWidth="500" >
            <UniformGrid Columns="2">
                <Label Content="Foo" FontWeight="Bold"/>
                <Label Content="{Binding Path = EventLeague}" HorizontalAlignment="Center"/>
                <Label Content="Date" FontWeight="Bold"/>
                <Label Content="{Binding Path = EventDate}" HorizontalAlignment="Center"/>
                <Label Content="Week" FontWeight="Bold"/>
                <Label Content="{Binding Path = EventGameWeek}" HorizontalAlignment="Center"/>
                <Label Content="Home" FontWeight="Bold"/>
                <Label Content="{Binding Path = EventStart}" HorizontalAlignment="Center"/>
                <Label Content="Away" FontWeight="Bold"/>
                <Label Content="{Binding Path = EventStadium}" HorizontalAlignment="Center"/>
             </UniformGrid >
      </Viewbox>
    

    编辑:

    正如您已经澄清,大小是您的问题,而不是控件的不可读性

    然后视图框的工作方式是对其中的内容执行图像拉伸以使其适合其中,

    所以如果 ViewBox 是 100 宽,但里面的项目是 500 宽,那么它们会缩小到原来大小的 1/5 以适应

    因为你有Stretch="Uniform",那么它将在缩小和增长的同时保持纵横比,如果控件的大小太小,则设置 Viewbox 的MinHeightMinWidth 值来控制最小大小

    【讨论】:

    • 这只是优化了去除多个网格的代码,但分辨率问题仍然存在..
    • 它删除了重叠的控件,这是导致框中文本重叠的原因,这使我无法阅读屏幕截图
    • 你是对的,但这是另一个错误。现在是固定的,但问题的主要问题仍然存在。当窗口分辨率最小时,我看不到文本的易读性,有什么东西可以用来防止文本失去易读性?谢谢。
    猜你喜欢
    • 2013-04-02
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多