Usercontrol не отображает его содержимое - PullRequest
0 голосов
/ 23 марта 2020

Пока я пытался поэкспериментировать с пользовательскими элементами управления, я наткнулся на эту странную проблему, которая по какой-то причине, когда я добавляю пользовательский элемент управления в окно, просто отображает созданную мной границу, но не отображает никакого содержимого. внутри него (поместил ли я его в рамку или сетку)

Вот так это выглядит в конструкторе:

User Control Designer

А вот как это выглядит в окне (в дизайнере и во время выполнения):

Window Designer

Как видно, на нем нет ни кнопки, ни метки .

Контроль пользователя:

    <Grid Background="{x:Null}">
        <Border BorderBrush="#FAF9F9" CornerRadius="20" Background="#FAF9F9">
            <Border.Effect>
                <DropShadowEffect Opacity="0.3" ShadowDepth="2" Direction="270"/>
            </Border.Effect>
            <Grid Background="{x:Null}">
                <Label Content="Label" HorizontalAlignment="Left" VerticalContentAlignment="Center" Margin="10,280,0,0" VerticalAlignment="Top" Height="47" Width="428" FontSize="25"/>
                <Button Content="+" HorizontalAlignment="Left" Margin="443,280,0,0" VerticalAlignment="Top" Width="47" Height="47" HorizontalContentAlignment="Center" Foreground="White" FontSize="40" FontWeight="Bold" RenderTransformOrigin="0.5,0.5" BorderBrush="{x:Null}">
                    <Button.Effect>
                        <DropShadowEffect Opacity="0.3" ShadowDepth="2" Direction="270"/>
                    </Button.Effect>
                    <Button.Template >
                        <ControlTemplate TargetType="Button" >
                            <Grid >
                                <Path Stretch="Uniform" UseLayoutRounding="False" Fill="#FFEA1E27">
                                    <Path.Data>
                                        <EllipseGeometry RadiusX="1" RadiusY="1"/>
                                    </Path.Data>
                                </Path>
                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            </Grid>
                        </ControlTemplate>
                    </Button.Template>
                </Button>
            </Grid>
        </Border>
    </Grid>

1 Ответ

0 голосов
/ 23 марта 2020

Похоже, фактический размер вашего элемента управления меньше, чем размер дизайна. Таким образом, метка и кнопка находятся за пределами видимой части элемента управления.

Попробуйте расположить Label и Button относительно нижнего правого и левого углов вместо верхнего левого.

<Label Content="Label" HorizontalAlignment="Left" Margin="10" VerticalContentAlignment="Center" VerticalAlignment="Bottom" Height="47" Width="428" FontSize="25"/>
<Button Content="+" HorizontalAlignment="Right" Margin="10" VerticalAlignment="Bottom" Width="47" Height="47" HorizontalContentAlignment="Center" Foreground="White" FontSize="40" FontWeight="Bold" RenderTransformOrigin="0.5,0.5" BorderBrush="{x:Null}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...