У меня есть пользовательский элемент управления, который выглядит как чтоWPF форму ромба пользовательский элемент управления
<UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" x:Class="Block"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="86" Width="151" ToolTip="{DynamicResource BasicTooltip}">
<UserControl.Resources>
<ResourceDictionary Source="TextBoxStyles.xaml"/>
</UserControl.Resources>
<DockPanel LastChildFill="True" Style="{StaticResource PanelStyle}">
<Label DockPanel.Dock="Top" Content="{Binding Path=_Code}" HorizontalAlignment="Stretch" Name="label1" Height="25" VerticalAlignment="Top" Style="{StaticResource LabelStyle}" ></Label>
<TextBox Name="txtBox" Style="{StaticResource DefaultStyle}" >
<TextBox.Text>
<Binding Path="_Name">
</Binding>
</TextBox.Text>
</TextBox>
</DockPanel>
Итак, как вы можете видеть, этот элемент управления состоит из DockPanel, где я поместил этикетку и текстовое поле. В коде я добавил некоторое событие к операции над меткой и текстовым полем, упомянутым выше. Этот элемент управления имеет основную форму прямоугольника. Однако сегодня я узнал, что для этого элемента было бы лучше иметь форму ромба или более сложного, а затем случайного прямоугольника. Можно ли настроить мой контроль на другую форму, сохранить всю функциональность (все события, которые я написал в файле кода) и сохранить содержание (текстовое поле и ярлык) intanct?
Я дал попробовать с этим кодом
<Style TargetType="{x:Type UserControl}" x:Key="BlockStyle" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Ellipse
x:Name="Border"
Stroke="#FF393785"
StrokeThickness="2"
Fill="Transparent"
>
</Ellipse>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Однако, когда я использую этот стиль в моем контроле, все элементы (TextBox и этикетки и т.д.) являются укрыты этим стилем.
Мне кажется, что это не работает. Если я переношу свои текстовые поля и т. Д. В этот код, я получаю ошибки в коде C# (компилятор не видит текстовые поля и т. Д., Которые я упоминаю в своем коде). Я хотел бы иметь resourcedictionary (на самом деле поставить код выше в ресурсный словарь), где я бы сохранил стили (которые будут нести ответственность за форму управления). Содержание контроля никогда не меняется, мне нужна только форма границы управления, чтобы изменить ее на ромб. – elMariachi