/ / Explicit свойства на UserControl се игнорират в Generic.xaml - wpf

Изричните свойства на UserControl се игнорират в Generic.xaml - wpf

Имам прост UserControl с Ширина и Височина по подразбиране, зададени вътре в UserControl1.xaml:

<UserControl x:Class="WpfApplication7.UserControl1"
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"
Width="100" Height="100"
d:DesignHeight="300" d:DesignWidth="300">

<Border Background="Blue"/>
</UserControl>

След това поставих UserControl в потребителски контрол CustomControl1 и замени стойностите за ширината и височината в Generic.xaml:

<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<local:UserControl1 Width="5" Height="5" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

По някаква причина, когато инстанциирам моя CustomControl1, виждам, че определени стойности за Width and Height са игнорирани.

Screenshot

Сега намерих решение за този проблем.

Но искам да разбера защо това се случва?

Отговори:

1 за отговор № 1

Премахнете фиксираната ширина и височина от персонализирания си контрол.

   <UserControl x:Class="WpfApplication7.UserControl1"
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">

<Border Background="Blue"/>
</UserControl>

Трябва да работите, когато зададете ширина и височина в основния изглед.


1 за отговор № 2

Това се случва, защото сте твърдо кодиранивисочина / ширина от 100 x 100 на UserControl - и тези стойности имат по-високо предимство, отколкото когато сте се опитали да настроите височина / ширина до 5 x 5 в потребителското потребителско копие на UserControl.

Дори ако определите височина / ширина за(например 5 x 5) - всъщност няма да промени размера на потребителския контрол, то просто ще покаже секция от 5 x 5. Това е най-добре илюстрирано с изображение, а не с правоъгълник, разбира се.