Я пытался создать ThemeShadow
программно, но не могу решить часть Resources
в XAML
. Я называю void
вот так: CreateTheme(Test,SharedShadow);
. Мне нравится избавляться от части SharedShadow
при вызове void
параметров, чем я могу заставить ее работать без кода в XAML
. Как это сделать?
XAML
<Grid>
<!--HOW TO MAKE THIS PART (RESOURCES) PROGRAMMATICALLY?-->
<Grid.Resources>
<ThemeShadow x:Name="SharedShadow" />
</Grid.Resources>
<Rectangle x:Name="Test" Width="200" Height="70" Fill="DarkGray" Shadow="{StaticResource SharedShadow}"></Rectangle>
</Grid>
Void - C #
public static void CreateTheme(FrameworkElement TargetFrameworkElement, ThemeShadow SharedShadow)
{
//In this case we know the Parent will be Grid...
Grid TargetGrid = VisualTreeHelper.GetParent(TargetFrameworkElement) as Grid;
//Create the Grid for Shadow
Grid ShadowGrid = new Grid() {Margin=new Thickness(-16) };
//Insert it as first element in its Parent
TargetGrid.Children.Insert(0, ShadowGrid);
//Recievers
SharedShadow.Receivers.Add(ShadowGrid);
//Translation
TargetFrameworkElement.Translation += new Vector3(0, 0, 16);
}