2015-09-28 3 views
1

Итак, у меня есть C# 5.0 All-In-One для чайников, но на самом деле это не очень хороший пример того, чего я хочу достичь. Вот моя 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.

Почему я хочу отправить имена двух изображений в качестве параметров, так что команда может использоваться повторно, если я хочу использовать другой элемент управления изображением.

Как бы я это сделал?

ответ

1

Существует не свойство Command на Slider, хотя можно добавить один (см https://gist.github.com/anonymous/4326429)

Простой вариант будет обрабатывать ValueChanged событие на Slider или, возможно, если в SliderValue собственности на App. xaml.cs - это то, что вы можете запустить свой многоразовый код команды из его сеттера.

Обратите внимание, что вы можете захотеть просмотреть шаблон MVVM, а не поместить весь свой код в код.

+0

Я пытаюсь использовать шаблон MVVM, как я думал, разделяя мои команды на Commands.cs, отделяя ввод пользователя от кода позади. # –

+0

Ive еще не добавил свойство command, кстати, поскольку im просто пытается выяснить, как это работает: D –

+0

Возможно, SliderValue находится на вашей виртуальной машине, а не в app.xaml.cs, тогда вы можете позвонить своему код команды из сеттера. –

Смежные вопросы