<Grid >
<Grid HorizontalAlignment="Left" Height="104" Margin="100,257,0,0" VerticalAlignment="Top" Width="714">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition />
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Border Background="Black" Width="200" />
<Border Grid.Column="1" Background="Red"/>
<Border Grid.Column="2" Background="Black" Width="200" RenderTransformOrigin="0.5,0.5"/>
</Grid>
</Grid>
上面在Grid的三列中各放了一个Border,然后在Blend中,对第三个Border使用LayoutTransform属性应用变换,而不是使用RenderTransform属性。如下所示:
<Grid >
<Grid HorizontalAlignment="Left" Height="104" Margin="100,257,0,0" VerticalAlignment="Top" Width="714">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition />
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Border Background="Black" Width="200" />
<Border Grid.Column="1" Background="Red"/>
<Border Grid.Column="2" Background="Black" Width="200" RenderTransformOrigin="0.5,0.5">
<Border.LayoutTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="30"/>
<TranslateTransform/>
</TransformGroup>
</Border.LayoutTransform>
</Border>
</Grid>
</Grid>
我想问的是,虽然LayoutTransform会是元素在变换之后,重新计算布局,但是,此例中,为什么Border旋转一点点后,就看不到了呢?
解决方案 »
- C# FtpWebRequest 上传文件问题
- 请教:用checkbox获得win7修改注册表的权限~
- 求教,string 不包含text???这是什么原因求解
- 未将对象引用设置到对象的实例 ~~加了try还是不行啊……
- remoting传值问题
- 如何在现成的DLL文件中再添加资源文件或代码文件?
- 谁有.net类库参考手册的下载地址?
- (高分求救),请教,如何在COPY文件时,显示进度条(progressBar)?
- 在Web中,如何隐藏DataGrid的某一列!
- 海波大哥和诸位水晶报表高手过来帮忙啊!水晶报表中如何让详细资料区的内容一直打印到页面的底部!内详
- combobox数据绑定之后SelectedIndexChanged事件无法触发咋办?
- 求一个正则表达式
简单的说,RenderTransform起作用的时候,你的border的高度由于自动填充了第三列,所以真实高度已经有了。
而LayoutTransform起作用的时候,你的border并没有自动填充第三列,由于你只设置了border的宽度,所以这里高度就是0了。所以你什么都看不到了。