Вы можете сделать это по-разному.
Вы можете использовать привязку, как вы уже использовали в своем коде XAML.
Это может быть код вашей кнопки:
<Button x:Name="btnBackgroundCodeBehind" Content="Code Behind Button" />
и код XAML для вашего меню:
<Menu Grid.Column="2">
<MenuItem x:Name="menuSliderOpacity" Header="Opacidade" Width="100">
<MenuItem.Template>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Slider Width="100"
x:Name="sliderOpacity"
Minimum="0"
Maximum="1"
TickFrequency="0.1"
IsSnapToTickEnabled="True"
ValueChanged="Slider_ChangeOpacity"
Value="{Binding ElementName=btnBackground, Path=Opacity, Mode=OneWayToSource}"/>
</ControlTemplate>
</MenuItem.Template>
</MenuItem>
Вы делаете (почти) то же самое вкод позади.Ваш метод Slider_ChangeOpacity может выглядеть следующим образом:
private void Slider_ChangeOpacity(object sender, RoutedPropertyChangedEventArgs<double> e)
{
btnBackgroundCodeBehind.Opacity = e.NewValue;
}
Я сказал почти потому, что это только одностороннее решение, это только от ползунка до кнопки.
Если вы будете использовать структуру MVVMВы можете привязаться к модели представления.
Что лучше всего сделать, так это решать вашу ситуацию.Если вы создаете сложную программу, я бы предпочел привязку к модели представления.Если вы хотите создать только представление для будущего использования, я бы предпочел прямую привязку.В случае, если вам нужно выполнить более сложные манипуляции с данными между парой (кнопка и ползунок), следует использовать код позади.
Надеюсь, это ответит на ваши вопросы.