WPF - 命令和引用对象

时间:2015-09-28 15:36:04

标签: c# wpf xaml

所以我有C#5.0 All-In-One for Dummies,但它并没有真正展示我想要实现的目标。这是我的XAML:

<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 个答案:

答案 0 :(得分:1)

Slider上没有Command属性,尽管可以添加一个(参见https://gist.github.com/anonymous/4326429

一个简单的选项是处理Slider上的ValueChanged事件,或者如果App.xaml.cs上的SliderValue属性是a,那么你可以从它发出可重用的“命令”代码设定器。

旁注,您可能希望查看MVVM模式,而不是将所有代码放在代码中。