2015-09-28 58 views
1

因此,我已經獲得了C#5.0 All-In-One for Dummies,但它並沒有真正展示我想實現的一個好例子。這是我的XAML:WPF - 命令和引用對象

<StackPanel Grid.Column="1"> 
    <Grid> 
     <Image Source="Images/039.JPG" x:Name="example_image"/> 
     <Image Source="Images/example.png" HorizontalAlignment="Right" VerticalAlignment="Bottom" Panel.ZIndex="999" x:Name="example_logo"/> 
    </Grid> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="8*"/> 
      <ColumnDefinition Width="1*"/> 
     </Grid.ColumnDefinitions> 
     <Slider Grid.Column="0" Margin="10" Maximum="100" SmallChange="1" ToolTip="Watermark size in percent (%)" Value="{Binding Path=SliderValue, Source={x:Static Application.Current}}"/> 
     <TextBlock Grid.Column="1" Text="{Binding Path=SliderValue, Source={x:Static Application.Current}}" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
    </Grid> 
</StackPanel> 

所以我有2個圖像,一個圖像1(水印)的其他圖像2的頂部,我有一個滑塊,我已經綁定到一個值我App.xaml.cs.

我需要做的是編寫一個自定義命令,它將在滑塊移動時觸發,我需要向該命令添加一些參數,這將成爲2個圖像名稱,所以我可以使用命令操作這些控件。

我似乎無法鍛鍊我如何做到這一點,我爲我的命令Commands.cs做了一個單獨的文件。

爲什麼我要發送2個圖像名稱作爲參數,以及如果我想使用不同的圖像控件,則命令是可重用的。

我該怎麼做呢?

回答

1

沒有在滑塊上的Command屬性,雖然有可能增加一個(見https://gist.github.com/anonymous/4326429

一個簡單的選擇是處理上的滑塊或者是如果在App的SliderValue屬性ValueChanged事件。 xaml.cs是一個然後你可以從它的setter啓動可重用的「命令」代碼。

注意,您可能希望查看MVVM模式,而不是將所有代碼放在代碼後面。

+0

我正在嘗試使用MVVM模式,因爲我認爲將我的命令分隔成Commands.cs將用戶輸入與代碼背後分開。 # –

+0

我還沒有添加命令屬性的方式,因爲即時只是試圖澄清它是如何工作的:D –

+0

SliderValue應該可能在你的虛擬機中,而不是在app.xaml.cs中,然後,你可以打電話給你來自setter的命令代碼。 –