gpt4 book ai didi

c# - 在上下文菜单中访问 slider 值

转载 作者:行者123 更新时间:2023-12-04 01:52:22 24 4
gpt4 key购买 nike

我画了一个ContextMenuslider里面。

这是我的实际代码:

<MenuItem  x:Name="menuSliderOpacity" Header="Opacidade" Width="100">
<MenuItem.Template>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Slider Width="100"
Name="sliderOpacity"
Minimum="0"
Maximum="1"
TickFrequency="0.1"
IsSnapToTickEnabled="True"
ValueChanged="Slider_ChangeOpacity"
Value="{Binding ElementName=btnBackground, Path=Opacity, Mode=TwoWay}"/>
</ControlTemplate>
</MenuItem.Template>
</MenuItem>

现在这是我里面的信息。这个 slider将控制屏幕上某些内容的背景不透明度,例如 button , 例如。首先我试过:

在按钮上
{Binding ElementName=sliderOpacity, Path=Value}

或者类似我的 Value on Slider 的双向模式。
我怎样才能建立这种关联?在我如何获取或设置代码隐藏 slider 的值之后。

正确的方法是什么?

最佳答案

你可以用不同的方式做到这一点。

您可以像在 XAML 代码中那样使用绑定(bind)。

这可能是您的按钮的代码:

<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;
}

我说几乎是因为这只是单向解决方案,它只是从 slider 到按钮。

如果您使用 MVVM 结构,您可以绑定(bind)到 View 模型。

最好的方法是什么取决于你的情况。如果您创建一个复杂的程序,我更喜欢绑定(bind)到 View 模型。您是否只想创建一个 View 以供将来使用,而不是我更喜欢直接绑定(bind)。如果您必须对这对(按钮和 slider )中的数据进行更复杂的操作,则应使用后面的代码。

希望这能回答你的问题。

关于c# - 在上下文菜单中访问 slider 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404482/

24 4 0