2017-07-23 48 views
-1

如何使用WidthHeight單擊圖片時使圖像更大。c#中的點擊改變邊框內的圖像的大小

我的按鈕XAML代碼是這樣的:

<Button x:Name="Input2" Grid.Row="0" MouseEnter="Input2_MouseEnter" MouseLeave="Input2_MouseLeave" Click="Input2_Click" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="{x:Null}"> 
      <Button.Template> 
       <ControlTemplate> 
        <Border HorizontalAlignment="Center" VerticalAlignment="Center" > 
         <Image Source= "C:\input.png" 
          Width="40" 
          Height="40"/> 
        </Border> 
       </ControlTemplate> 
      </Button.Template> 
</Button> 

Input2.Height - 更改按鈕的大小,而不是裏面的圖像。

我的C#代碼:

private void Input2_Click(object sender, RoutedEventArgs e) 
{ 
    // What to do here? 
} 
+1

如何將大小重置?或者你想在第一次點擊後保留調整大小的圖像?您可能需要的是Button的IsPressed屬性上的觸發器。 – Clemens

+0

@Clemens我會重置它,我只需要知道如何更改大小... –

回答

3

而是附加一個Click事件處理程序中,最好使用對按鍵的IsPressed屬性觸發:

<Button> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"> 
      <Border> 
       <Image x:Name="image" Width="40" Height="40" Source="C:\input.png"/> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsPressed" Value="True"> 
        <Setter TargetName="image" Property="Width" Value="50"/> 
        <Setter TargetName="image" Property="Height" Value="50"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 
+0

我怎樣才能改回來? –

+1

只要Button的IsPressed屬性返回false,它就會自動變回。 – Clemens

+0

我不希望這會自動改回來,我想按照我的條款。 –

-1

的最簡單的解決方案將是爲x添加:名稱= 「input2Image」 到圖像元件,以及使用該名稱放大圖像,這樣的:

<Button x:Name="Input2" Grid.Row="0" MouseEnter="Input2_MouseEnter" MouseLeave="Input2_MouseLeave" Click="Input2_Click" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="{x:Null}"> 
     <Button.Template> 
      <ControlTemplate> 
       <Border HorizontalAlignment="Center" VerticalAlignment="Center" > 
        <Image x:Name="Input2Image" Source= "C:\input.png" 
         Width="40" 
         Height="40"/> 
       </Border> 
      </ControlTemplate> 
     </Button.Template> 

和:

private void Input2_Click(object sender, RoutedEventArgs e) 
{ 
    this.Input2Image.Height = 80; 
    this.Input2Image.Width = 80; 
} 

這應該可行,但您可能會考慮開始使用綁定和MVVM模式,以最大限度地提高WPF的功能。

+0

它不工作 –

+0

@Clemens儘管如此,他本來可以使用轉換器或觸發器來代表視圖上的數據,並且在模型方面仍然有一個屬性。 –