翻转水平网格背景图像(画笔)

时间:2011-09-01 15:53:52

标签: silverlight transitions

我已将Grid的背景画笔设置为ImageBrush 但是当我将Grid的FlowDirection设置为RightToLeft时,图像会被水平翻转。

是否可以使用某种转换或任何其他方式(un)翻转网格背景ImageBrush?

2 个答案:

答案 0 :(得分:1)

你可以用合理的方法做到这一点(同样的方法远非明智)。

而是使用Grid.RowSpan,Grid.ColumnSpan将Image元素作为Grid中的第一个项目来覆盖所有单元格。在图像上使用Stretch =“Fill”,因为背景通常表现如何。

答案 1 :(得分:0)

嗯,我确实理解我的评论已经过时了,但是这个问题突然出现在谷歌搜索的第一个问题中,所以这是我的解决方案:

我正在本地化从右到左文化的应用程序。设置FlowDirection = RTL的简单决定带来了意想不到的缺点,例如包含公司徽标的背景被翻转。我已经为用于渲染背景的图像画笔应用了矩阵变换:

var mbgBrush = TryFindResource("MainBackground") as Brush;
        if (mbgBrush == null) return null;
        if (FlowDirection == FlowDirection.LeftToRight) return mbgBrush;
        var mainBgImageBrush = mbgBrush as ImageBrush;
        if (mainBgImageBrush == null) return mbgBrush;
        var flipXaxis = new MatrixTransform(-1.0, 0, 0, 1.0, 1, 0);
        var flippedBrush = new ImageBrush
                           {
                               Stretch = Stretch.None,
                               Opacity = 1.0,
                               ImageSource = mainBgImageBrush.ImageSource,
                               RelativeTransform = flipXaxis
                           };
        return flippedBrush;