2017-02-09 319 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>