Wpf 可以<;设定值>;里面有多个网格
我想在App.XAML中定义我的应用程序的背景。背景先前在另一个xaml页面中定义,该页面中有多个网格,如下所示:Wpf 可以<;设定值>;里面有多个网格,wpf,silverlight,silverlight-3.0,Wpf,Silverlight,Silverlight 3.0,我想在App.XAML中定义我的应用程序的背景。背景先前在另一个xaml页面中定义,该页面中有多个网格,如下所示: <Grid x:Key="GridGeneric" d:LayoutOverrides="Width, Height"> <Grid.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> &
<Grid x:Key="GridGeneric" d:LayoutOverrides="Width, Height">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00172E" Offset="1"/>
<GradientStop Color="#FF004074" Offset="0.433"/>
<GradientStop Color="#FF081316"/>
<GradientStop Color="#FF001D3F" Offset="0.215"/>
<GradientStop Color="#FF002043" Offset="0.818"/>
<GradientStop Color="#FF003B6C" Offset="0.642"/>
</LinearGradientBrush>
</Grid.Background>
<Grid>
<Grid.Background>
<RadialGradientBrush RadiusY="0.973" GradientOrigin="0.497,-0.276" RadiusX="1.003">
<GradientStop Color="#FFB350EE" Offset="0"/>
<GradientStop Color="#001D3037" Offset="0.847"/>
</RadialGradientBrush>
</Grid.Background>
</Grid>
------
-----
</Grid>
<Style x:Key="backgroundStyle" TargetType="Grid">
<Setter Property="Background">
<Setter.Value>
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00172E" Offset="1"/>
<GradientStop Color="#FF004074" Offset="0.433"/>
<GradientStop Color="#FF081316"/>
<GradientStop Color="#FF001D3F" Offset="0.215"/>
<GradientStop Color="#FF002043" Offset="0.818"/>
<GradientStop Color="#FF003B6C" Offset="0.642"/>
</LinearGradientBrush>
</Grid.Background>
<Grid>
<Grid.Background>
<RadialGradientBrush RadiusY="0.973" GradientOrigin="0.497,-0.276" RadiusX="1.003">
<GradientStop Color="#FFB350EE" Offset="0"/>
<GradientStop Color="#001D3037" Offset="0.847"/>
</RadialGradientBrush>
</Grid.Background>
</Grid>
---------
---------
</Grid>
</Setter.Value>
</Setter>
</Style>
------
-----
现在,我想将其放入我的App.xaml中,如下所示:
<Grid x:Key="GridGeneric" d:LayoutOverrides="Width, Height">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00172E" Offset="1"/>
<GradientStop Color="#FF004074" Offset="0.433"/>
<GradientStop Color="#FF081316"/>
<GradientStop Color="#FF001D3F" Offset="0.215"/>
<GradientStop Color="#FF002043" Offset="0.818"/>
<GradientStop Color="#FF003B6C" Offset="0.642"/>
</LinearGradientBrush>
</Grid.Background>
<Grid>
<Grid.Background>
<RadialGradientBrush RadiusY="0.973" GradientOrigin="0.497,-0.276" RadiusX="1.003">
<GradientStop Color="#FFB350EE" Offset="0"/>
<GradientStop Color="#001D3037" Offset="0.847"/>
</RadialGradientBrush>
</Grid.Background>
</Grid>
------
-----
</Grid>
<Style x:Key="backgroundStyle" TargetType="Grid">
<Setter Property="Background">
<Setter.Value>
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00172E" Offset="1"/>
<GradientStop Color="#FF004074" Offset="0.433"/>
<GradientStop Color="#FF081316"/>
<GradientStop Color="#FF001D3F" Offset="0.215"/>
<GradientStop Color="#FF002043" Offset="0.818"/>
<GradientStop Color="#FF003B6C" Offset="0.642"/>
</LinearGradientBrush>
</Grid.Background>
<Grid>
<Grid.Background>
<RadialGradientBrush RadiusY="0.973" GradientOrigin="0.497,-0.276" RadiusX="1.003">
<GradientStop Color="#FFB350EE" Offset="0"/>
<GradientStop Color="#001D3037" Offset="0.847"/>
</RadialGradientBrush>
</Grid.Background>
</Grid>
---------
---------
</Grid>
</Setter.Value>
</Setter>
</Style>
---------
---------
但在这样做的同时,我得到了以下例外
您试图将网格设置为背景属性,这是不可能的。background属性需要笔刷,因此会出现异常 您可以使用 否则,您必须在窗口中使用嵌套的网格布局,并像这样应用这两种样式 在窗口中绘制此布局:
<Grid x:Key="GridGeneric" Background="{StaticResource OuterGridBrush}">
<Grid Background="{StaticResource InnerGridBrush}">
</Grid>
</Grid>
将此内容放入你的app.xaml的参考资料部分:
<LinearGradientBrush x:Key="OuterGridBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF00172E" Offset="1"/>
<GradientStop Color="#FF004074" Offset="0.433"/>
<GradientStop Color="#FF081316"/>
<GradientStop Color="#FF001D3F" Offset="0.215"/>
<GradientStop Color="#FF002043" Offset="0.818"/>
<GradientStop Color="#FF003B6C" Offset="0.642"/>
</LinearGradientBrush>
<RadialGradientBrush x:Key="InnerGridBrush" RadiusY="0.973" GradientOrigin="0.497,-0.276" RadiusX="1.003">
<GradientStop Color="#FFB350EE" Offset="0"/>
<GradientStop Color="#001D3037" Offset="0.847"/>
</RadialGradientBrush>