2017-02-09 43 views
0

当我为WPF按钮设置背景图像时 - 它显示为相反方向 - 水平翻转(如镜子)。 任何解决方案? (它没有用的FlowDirection做)WPF按钮中的背景图像显示为水平翻转(如镜子)

<Button x:Name="btnGoodMark" Grid.Row="1" Content="{Binding Path=GoodBtnTxt}" Click="btnGoodMark_Click" FontSize="30"> 
       <Button.Background> 
        <ImageBrush ImageSource ="Images/Green_V.png" ></ImageBrush> 
       </Button.Background> 
      </Button> 
+0

也许'LayoutTransform'或'RenderTransform' ......你必须提供一个verifyable例如,否则其不容易帮助。 – grek40

+0

此外,不清楚您是否寻找提示为什么会翻转或解决方法如何将图像还原为原始方向。 – grek40

回答

0

(编辑)使用ScaleTransform:

 <Button x:Name="btnGoodMark" RenderTransformOrigin="0.5,0" Width="100" Height="100" Grid.Row="1" Content="ABC" FontSize="30" > 
     <Button.RenderTransform> 
      <ScaleTransform ScaleX="-1" ></ScaleTransform> 
     </Button.RenderTransform> 
    </Button> 
+1

“请注意,转换器是必需的”。这是错误的。设置'RenderTransformOrigin =“0.5,0.5”'或设置'LayoutTransform'而不是'RenderTransform',它可以补偿任何翻译。另请注意,您的解决方案将翻转/镜像整个按钮,将文本包含在其内容中。 – Clemens

+0

谢谢,你是对的。当然我认为“-0.5,x”是正确的(其中x可以是任何值)。 – Ron

+0

“其中x可以是任何值”,当然,例如“0.5”。然而'-0.5'是错误的。 RenderTransformOrigin以相对单位给出,范围从0到1,'0.5,0.5'​​是元素的中心,与其实际大小无关。 – Clemens

1

从你的问题目前尚不清楚为什么应该有图像的任何水平翻转在所有。

然而,设置图像刷的RelativeTransform财产便可还原效果:

<Button.Background> 
    <ImageBrush ImageSource="Images/Green_V.png"> 
     <ImageBrush.RelativeTransform> 
      <ScaleTransform ScaleX="-1" CenterX="0.5"/> 
     </ImageBrush.RelativeTransform> 
    </ImageBrush> 
</Button.Background>