Как я создаю контейнер Скругленного угла WPF?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

105
задан casperOne 28 July 2012 в 02:48
поделиться

3 ответа

Вы не нуждаетесь в пользовательском элементе управления, просто помещаете Ваш контейнер в элемент границы:

<Border BorderBrush="#FF000000" BorderThickness="1" CornerRadius="8">
   <Grid/>
</Border>

можно заменить <Grid/> любым из контейнеров макетов...

250
ответ дан DerApe 24 November 2019 в 03:54
поделиться

Я знаю, что это не ответ на начальный вопрос..., но Вы часто хотите отсечь внутреннее содержание той границы скругленного угла, которую Вы просто создали.

Chris Cavanagh придумал отличный способ , чтобы сделать просто это.

я попробовал пару разных подходов к этому..., и я думаю эти скалы.

Вот xaml ниже:

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="Black"
>
    <!-- Rounded yellow border -->
    <Border
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        BorderBrush="Yellow"
        BorderThickness="3"
        CornerRadius="10"
        Padding="2"
    >
        <Grid>
            <!-- Rounded mask (stretches to fill Grid) -->
            <Border
                Name="mask"
                Background="White"
                CornerRadius="7"
            />

            <!-- Main content container -->
            <StackPanel>
                <!-- Use a VisualBrush of 'mask' as the opacity mask -->
                <StackPanel.OpacityMask>
                    <VisualBrush Visual="{Binding ElementName=mask}"/>
                </StackPanel.OpacityMask>

                <!-- Any content -->
                <Image Source="http://chriscavanagh.files.wordpress.com/2006/12/chriss-blog-banner.jpg"/>
                <Rectangle
                    Height="50"
                    Fill="Red"/>
                <Rectangle
                    Height="50"
                    Fill="White"/>
                <Rectangle
                    Height="50"
                    Fill="Blue"/>
            </StackPanel>
        </Grid>
    </Border>
</Page>
51
ответ дан cplotts 24 November 2019 в 03:54
поделиться

Если вы пытаетесь поместить кнопку в рамку с закругленными прямоугольниками, вам стоит посмотреть пример msdn. Я нашел его, погуглив в поисках изображений проблемы (вместо текста). Их громоздкий внешний прямоугольник (к счастью) легко удалить.

Обратите внимание, что вам придется переопределить поведение кнопки (поскольку вы изменили ControlTemplate). То есть, вам нужно будет определить поведение кнопки при нажатии, используя тег Trigger (Property="IsPressed" Value="true") в теге ControlTemplate.Triggers. Надеюсь, это сэкономит кому-нибудь время, которое потерял я :)

1
ответ дан 24 November 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: