• Silverlight控件自适应利器UseLayoutRounding属性(解决自适应抖动问题)


    例如:Grid宽度100,分3列显示,那么每一列的宽度33.3333

    <Grid x:Name="LayoutRoot" Background="White" Width="100">
    	<Grid.ColumnDefinitions>
    		<ColumnDefinition  />
    		<ColumnDefinition  />
    		<ColumnDefinition />
    	</Grid.ColumnDefinitions>
    	<Grid.RowDefinitions>
    		<RowDefinition/>
    	</Grid.RowDefinitions>
      	<TextBox Text="TextBox" Grid.Column="0" Grid.Row="0"  />
    	<TextBox Text="TextBox" Grid.Column="1" Grid.Row="0"  />
    	<TextBox Text="TextBox" Grid.Column="2" Grid.Row="0"  />
    </Grid>

    FrameworkElement.UseLayoutRounding 属性

    获取或设置一个值,该值指示在布局过程中是否应该对此元素的大小和位置应用布局舍入。

    属性值
    类型:System.Boolean
    如果应用布局舍入,则为 true;否则为 false。默认值为 false。

    调整代码

    <Grid x:Name="LayoutRoot" Background="White" Width="100" UseLayoutRounding="True">
    	<Grid.ColumnDefinitions>
    		<ColumnDefinition  />
    		<ColumnDefinition  />
    		<ColumnDefinition />
    	</Grid.ColumnDefinitions>
    	<Grid.RowDefinitions>
    		<RowDefinition/>
    	</Grid.RowDefinitions>
      	<TextBox Text="TextBox" Grid.Column="0" Grid.Row="0"  />
    	<TextBox Text="TextBox" Grid.Column="1" Grid.Row="0"  />
    	<TextBox Text="TextBox" Grid.Column="2" Grid.Row="0"  />
    </Grid>

    应用UseLayoutRounding="True"后,有一列宽度会变为34,其余为33达到舍入效果!

    页面自适应时,例如改变窗口大小时,控件会有抖动问题,参考此属性,即可解决!

    MSDN

  • 相关阅读:
    提问回顾
    个人阅读作业+个人总结
    结对项目-数独程序扩展
    个人作业-Week 3
    个人作业-Week 2
    个人项目-数独程序
    个人作业-Week 1
    第0次博客作业
    2017[BUAA软工]第0次个人作业
    [2017BUAA软工]提问回顾
  • 原文地址:https://www.cnblogs.com/starlet/p/2799536.html
Copyright © 2020-2023  润新知