Возможно стили были бы лучше. Вы можете создать новый UserControl, назовем его BorderedControl. Я создал новую папку под названием Controls, чтобы ее удерживать.
<UserControl x:Class="BorderTest.Controls.BorderedControl"
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="300" d:DesignWidth="300">
<Grid>
</Grid>
</UserControl>
Далее создайте словарь ресурсов, UserControlResources. Обязательно укажите пространство имен элемента управления:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ctrls="clr-namespace:BorderTest.Controls">
<Style TargetType="{x:Type ctrls:BorderedControl}">
<Setter Property="BorderBrush" Value="Lime"/>
<Setter Property="BorderThickness" Value="3"/>
</Style>
</ResourceDictionary>
Здесь вы можете указать, какие свойства вы хотели бы иметь по умолчанию.
Затем включить словарь ресурсов в пользовательский элемент управления ресурсами:
<UserControl x:Class="BorderTest.Controls.BorderedControl"
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="300" d:DesignWidth="300">
<UserControl.Resources>
<ResourceDictionary Source="/BorderTest;component/Resources/UserControlResources.xaml"/>
</UserControl.Resources>
<Grid>
</Grid>
</UserControl>
Наконец, добавить элемент управления в главном окне:
<Window x:Class="BorderTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ctrls="clr-namespace:BorderTest.Controls"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ctrls:BorderedControl Width="100"
Height="100"/>
</Grid>
</Window>
Вот мое решение:
Вот приложение, когда вы запускаете его:
Вы можете просто изменить границы вашего пользовательского элемента управления с этим:
<ctrls:BorderedControl Width="100"
Height="100"
BorderBrush="Orange"/>
Would [ответить CSharper в] (https://stackoverflow.com/a/845033/3993154) в [ Привязать к значению, определенному в настройках] (https://stackoverflow.com/q/845030/3993154)? – Sometowngeek
@Sometowngeek dunno, не могу проверить, изменился ли теперь на aspnet разработчик год назад – FLCL