I have the following code:
XAML:
<UserControl x:Class="RBSoft.WPF.RedConsoleViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="355" d:DesignWidth="691" Name="ConsoleUI_Control" KeyDown="ConsoleUI_Control_KeyDown">
<Grid Name="_Layout">
<Rectangle Name="BackgroundLayout">
<!--...-->
</Rectangle>
</Grid>
</UserControl>
Code:
public Rectangle IBackground
{
get { return this.BackgroundLayout; }
set { this.BackgroundLayout = value; }
}
What I’m tying to do is edit the rectangle (BackgroundLayout) from the XAML editor like so:
<Window x:Class="LifeEnvironment.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="1064" Width="910"
xmlns:my="clr-namespace:RBSoft.WPF;assembly=RBSoft.WPF"
WindowStyle="None"
WindowState="Maximized"
WindowStartupLocation="CenterScreen">
<Grid>
<my:userControlTest>
<my:userControlTest.IBackground>
<Background ...>
</my:userControlTest.IBackground>
</my:userControlTest>
</Grid>
</Window>
But I have no access to this, what I need to do?
The correct way to do it, is by wrapping up the Rectangle with an User Control, like this:
and then, change the
Contentproperty instead the object itself, so you don’t lose the reference(BackgroundLayout):and finally, it will work: