如何在 C# 中使用滑块值更改网格不透明度

How To Change Grid Opacity using Slider Value In C#

我想使用滑块值更改或控制网格或图像之类的东西或任何不透明度。 我有完整的 window 控制程序,但我无法更改网格不透明度。

请参阅此代码以更改 window 不透明度。

 public partial class MainWindow : MetroWindow
    {
        public MainWindow()
        {
            InitializeComponent();
            this.AllowsTransparency = true;
        }

        private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            this.Opacity = slider.Value / 100;

        }
}

并查看结果: Its worked perfectly

但我想通过滑块值更改网格(image/rectangle 或其他)不透明度。 我也试过这个代码但没有工作:

 private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
                {              
                  mygrid.Opacity =slider.Value / 100;
                }

使用绑定是更好的方法,而且很有效!尽量避免代码隐藏在任何可能的地方。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="auto"/>
    </Grid.RowDefinitions>
    <Grid Background="Black" Opacity="{Binding Value, ElementName=mySlider}"/>
    <Slider Name="mySlider" Grid.Row="1" Maximum="1" />
</Grid>