繁体   English   中英

网格背景的多个属性,例如ImageSource和Brush

[英]Multiple properties to Grid background like ImageSource and Brush

我有一个绑定属性MainImage的XAML代码:

<Grid>
  <Grid.Background>
    <ImageBrush ImageSource="{Binding MainImage}"/>
  </Grid.Background>
</Grid>

MainImage是ImageSource属性。 但是,现在我想将网格的简单画笔背景设置为。 应用程序正在使用ImageSource,如果有图像,则应用程序必须设置简单的画笔颜色。 如果可能的话,从Brush到ImageSource的隐蔽存在问题。

我将使用OnLoaded事件并检查null并以这种方式进行更改。 除非要创建图像,然后将其绘制成某种颜色并将其作为图像源返回,否则除非您要创建该图像。 我认为除非您自己动手,否则不会有任何后备措施。


<Grid x:Name="my_grid" Loaded="my_grid_Loaded">
  <Grid.Background>
    <ImageBrush ImageSource="{Binding MainImage}"/>
  </Grid.Background>
</Grid>

private void my_grid_Loaded(object sender, RoutedEventArgs e)
{        
    Grid g = sender as Grid;
    System.Windows.Media.ImageBrush ib = g.Background as ImageBrush;                    
    if (ib.ImageSource == null)
    {
        g.Background = new SolidColorBrush(Colors.MYCOLOR);
    }
}

如果您的图像不是透明的,我将简单地创建不同的Grid甚至Rectangle,使其全屏显示并带有颜色。 如果有可用的图像,那么它将仅覆盖颜色并完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM