Разное

Шаблон кнопки: Шаблоны CSS кода для кнопок

24.08.2023

Содержание

Шаблонные кнопки – Notion — универсальное рабочее пространство для ваших заметок, задач, вики и баз данных

Расчетное время чтения: 1 мин

В Notion вы можете легко воспроизводить комбинации контента, которые вы часто используете — по сути, создавая свои собственные шаблоны внутри страницы 🍣.

Что такое кнопка шаблона?

Когда вы добавляете кнопку шаблона на страницу, она предлагает вам заполнить очень короткую форму конфигурации с содержимым, которое вы хотите воспроизвести. Это делает кнопку — каждый раз, когда вы нажимаете на нее, вы создаете настроенный вами контент.

Допустим, вы хотите каждый день заполнять одну и ту же форму с вопросом о том, за что вы благодарны, не создавая ее постоянно. Или вы хотите генерировать один и тот же список дел в начале каждого дня. Наша кнопка-шаблон идеально подходит для этого!

Создать кнопку-шаблон

Чтобы добавить эту кнопку, нажмите на + , который появляется в левом поле при наведении, и прокрутите страницу, чтобы найти кнопку Template button ( кнопка Шаблона ). Или введите /template и нажмите enter . Появится окно ниже:

  • Переименуйте кнопку в разделе Button name  ( имя кнопки ) и перетащите содержимое, которое вы хотите воспроизвести, в раздел Template ( шаблон ). Вы также можете создавать содержимое в этом разделе, как и на своей странице.
  • Шаблон кнопки предварительно отформатирован, чтобы продемонстрировать, как его можно использовать для списков дел, но вы можете удалить все в разделе Template ( шаблон ) и добавить свое собственное содержимое.
  • Перетащите сразу несколько блоков, выбрав и перетащив их все в этот раздел. Вы можете добавить заголовки, пули, флажки, любой текст и т.д.
  • Вы можете перетащить целые подстраницы в раздел Template ( шаблон ) формы, чтобы повторить их и их содержимое при нажатии на кнопку.
  • Нажмите Close ( закрыть ) в правом верхнем углу этого окна, чтобы закрыть форму конфигурации и использовать кнопку для генерации содержимого при каждом нажатии на нее.

Удаление кнопки шаблона

  • Наведите курсор на вашу кнопку и нажмите ⋮⋮ в левом поле. Или щелкните значок —  ••• , который появится справа. Вы также можете щелкнуть правой кнопкой мыши. Все эти действия вызовут одно и то же меню.
  • Нажмите кнопку Delete ( удалить ), чтобы полностью удалить кнопку шаблона. Вам придется переделать ее, чтобы вернуть обратно.

Часто задаваемые вопросы

Как создать шаблоны для вложенного содержимого?
Вложенный контент — это любой вид контента, который находится внутри другого блока контента, например: картинки и текст внутри страницы или список дел внутри списка переключения.

  • Создайте контент, который вы хотите воспроизвести, и перетащите его на страницу или в список переключения.
  • Создайте кнопку-шаблон и перетащите страницу или список переключения в раздел Template (Шаблон) формы конфигурации.
  • Нажмите Close ( закрыть ) и перетащите кнопку-шаблон в наиболее удобное место на странице.

Могу ли я использовать @-тег, например @today, внутри кнопки-шаблона?
Да! Вы сможете указать, хотите ли вы, чтобы @-примечание вводило фиксированную дату/пользователя или дату/пользователя при дублировании.

Запостил: Редактор Ноушен

Была ли эта статья полезной?

Да 4 Нет 3

Просмотров: 1447

Создание шаблона — WPF .NET

  • Статья

В Windows Presentation Foundation (WPF) можно настраивать визуальную структуру и функциональные возможности существующего элемента управления с помощью своего собственного шаблона многократного использования. Шаблоны можно применять глобально ко всему приложению, отдельным окнам и страницам или непосредственно к элементам управления. Большинство сценариев, в которых требуется создать новый элемент управления, можно реализовать, создав вместо этого новый шаблон для существующего элемента управления.

Важно!

Документация по классическим приложениям для .NET 7 и .NET 6 находится в стадии разработки.

В этой статье будет показано, как создать новый шаблон ControlTemplate для элемента управления Button.

Когда следует создавать ControlTemplate

Элементы управления имеют много свойств, таких, например, как Background, Foreground и FontFamily. Эти свойства управляют различными аспектами внешнего вида элемента управления, но с помощью них можно внести не так много изменений. Например, для элемента управления CheckBox можно задать синий цвет фона с помощью свойства Foreground и курсив с помощью свойства FontStyle. Если вы хотите внести такие изменения внешнего вида элемента управления, которые не предусмотрены его свойствами, можно создать шаблон ControlTemplate.

В большинстве пользовательских интерфейсов кнопка обычно выглядит как прямоугольник с текстом. Если вы хотите создать круглую кнопку, можно создать новый элемент управления, который наследует от кнопки или воссоздает функциональность кнопки. И вдобавок этот новый пользовательский элемент управления будет иметь круглую форму.

Вы можете не создавать новые элементы управления, а просто настроить визуальный макет существующего элемента управления. Например, для круглой кнопки можно создать шаблон ControlTemplate с желаемым визуальным макетом.

С другой стороны, если вам нужен элемент управления с новыми функциями, другими свойствами и новыми параметрами, лучше создать новый UserControl.

Предварительные требования

Создайте новое приложение WPF и в окне MainWindow.xaml (или в другом окне по вашему выбору) установите следующие свойства элемента <Окно>:

СвойствоЗначение
TitleTemplate Intro Sample
SizeToContentWidthAndHeight
MinWidth250

В качестве содержимого элемента <Окно> задайте следующий код XAML:

<StackPanel Margin="10">
    <Label>Unstyled Button</Label>
    <Button>Button 1</Button>
    <Label>Rounded Button</Label>
    <Button>Button 2</Button>
</StackPanel>

В итоге файл MainWindow. xaml

должен выглядеть следующим образом.

<Window x:Class="IntroToStylingAndTemplating.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:IntroToStylingAndTemplating"
        mc:Ignorable="d"
        Title="Template Intro Sample" SizeToContent="WidthAndHeight" MinWidth="250">
    <StackPanel Margin="10">
        <Label>Unstyled Button</Label>
        <Button>Button 1</Button>
        <Label>Rounded Button</Label>
        <Button>Button 2</Button>
    </StackPanel>
</Window>

Если запустить приложение, оно будет выглядеть так.

Создание шаблона ControlTemplate

Чаще всего ControlTemplate объявляется как ресурс в разделе Resources файла XAML. Так как шаблоны являются ресурсами, для них действуют те же правила определения области, что и для всех других ресурсов. Проще говоря, то, где вы объявляете шаблон, влияет на то, где этот шаблон может быть применен. Например, если вы объявите шаблон в корневом элементе XAML-файла определения приложения, этот шаблон можно будет использовать в любом месте вашего приложения. Если вы определяете шаблон в окне, его смогут использовать только элементы управления из этого окна.

Для начала добавьте элемент Window.Resources в свой файл MainWindow.xaml:

<Window x:Class="IntroToStylingAndTemplating.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:IntroToStylingAndTemplating"
        mc:Ignorable="d"
        Title="Template Intro Sample" SizeToContent="WidthAndHeight" MinWidth="250">
    <Window.
Resources> </Window.Resources> <StackPanel Margin="10"> <Label>Unstyled Button</Label> <Button>Button 1</Button> <Label>Rounded Button</Label> <Button>Button 2</Button> </StackPanel> </Window>

Создайте новый шаблон <ControlTemplate> со следующими заданными свойствами:

СвойствоЗначение
x:Keyroundbutton
TargetTypeButton

Этот шаблон элемента управления будет простым:

  • корневой элемент этого элемента управления, Grid;
  • Ellipse, чтобы кнопка отображалась круглой;
  • ContentPresenter для вывода указанного пользователем содержимого кнопки.
<ControlTemplate x:Key="roundbutton" TargetType="Button">
    <Grid>
        <Ellipse Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</ControlTemplate>

TemplateBinding

Создавая новый шаблон ControlTemplate, вы можете захотеть использовать общие свойства для изменения внешнего вида элемента управления. Расширение разметки TemplateBinding привязывает свойство элемента из шаблона ControlTemplate к общему свойству, которое задается элементом управления. При использовании расширения TemplateBinding свойства элемента управления могут действовать в качестве параметров шаблона. Это означает, что при задании свойства элемента управления соответствующее значение передается в элемент, который содержит TemplateBinding.

Ellipse

Обратите внимание, что свойства Fill и Stroke элемента <Эллипс> привязаны к свойствам элемента управления Foreground и свойствам Background.

ContentPresenter

Элемент <ContentPresenter> также добавляется в шаблон. Так как этот шаблон предназначен для кнопки, необходимо учитывать, что эта кнопка наследует от ContentControl. Кнопка представляет содержимое элемента. Можно задать что-либо внутри кнопки, например обычный текст или даже другой элемент управления. Оба следующих варианта — правильные кнопки:

<Button>My Text</Button>
<!-- and -->
<Button>
    <CheckBox>Checkbox in a button</CheckBox>
</Button>

В обоих приведенных выше примерах текст и флажок задаются как свойство Button.

Content. Все, что задано в качестве содержимого, может быть представлено с помощью <ContentPresenter>, что и делается в шаблоне.

Если ControlTemplate применяется к типу ContentControl, такому как Button, выполняется поиск ContentPresenter в дереве элементов. Если ContentPresenter обнаруживается, шаблон автоматически привязывает свойство Content элемента управления к элементу ContentPresenter.

Использовать шаблон

Найдите кнопки, которые были объявлены в начале этой статьи.

<StackPanel Margin="10">
    <Label>Unstyled Button</Label>
    <Button>Button 1</Button>
    <Label>Rounded Button</Label>
    <Button>Button 2</Button>
</StackPanel>

Задайте в свойстве Template второй кнопки ресурс roundbutton:

<StackPanel Margin="10">
    <Label>Unstyled Button</Label>
    <Button>Button 1</Button>
    <Label>Rounded Button</Label>
    <Button Template="{StaticResource roundbutton}">Button 2</Button>
</StackPanel>

Если теперь вы запустите проект и посмотрите на результат, то фон кнопки будет иметь овальную форму.

Вы, конечно, заметили, что кнопка не круглая, а вытянутая. Элемент <Ellipse>

всегда расширяется и заполняет доступное пространство. Сделайте кнопку круглой, задав в свойствах width и height одно и то же значение:

<StackPanel Margin="10">
    <Label>Unstyled Button</Label>
    <Button>Button 1</Button>
    <Label>Rounded Button</Label>
    <Button Template="{StaticResource roundbutton}">Button 2</Button>
</StackPanel>

Добавление триггера

Хотя кнопка с примененным шаблоном выглядит иначе, она ведет себя так же, как и любая другая кнопка. При нажатии кнопки срабатывает событие Click. Однако, как вы могли заметить, при наведении указателя мыши на кнопку визуально ничего не меняется. Все визуальные взаимодействия определяются шаблоном.

В системах динамических событий и свойств, предоставляемых WPF, можно отслеживать значение конкретного свойства, а затем при необходимости изменять стиль шаблона. В данном примере вы будете отслеживать свойство IsMouseOver кнопки. Задайте новый цвет для элемента <Ellipse>, который должен отображаться, когда указатель мыши наводится над этим элементом управления. Триггер такого типа называется PropertyTrigger.

Чтобы это работало, необходимо добавить в элемент <Ellipse> имя, на которое можно ссылаться. Задайте имя backgroundElement.

<Ellipse x:Name="backgroundElement" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />

Затем добавьте новый Trigger в коллекцию ControlTemplate.Triggers. Этот триггер будет отслеживать, когда событие IsMouseOver принимает значение true.

<ControlTemplate x:Key="roundbutton" TargetType="Button">
    <Grid>
        <Ellipse x:Name="backgroundElement" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
    <ControlTemplate. Triggers>
        <Trigger Property="IsMouseOver" Value="true">
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

Затем добавьте метод <Setter> в <Trigger>, который задает для свойства Fill элемента <Ellipse> новое значение цвета.

<Trigger Property="IsMouseOver" Value="true">
    <Setter Property="Fill" TargetName="backgroundElement" Value="AliceBlue"/>
</Trigger>

Запустите проект. Обратите внимание, что при наведении мыши на кнопку цвет элемента <Ellipse> меняется.

Визуальные состояния определяются и активируются элементом управления. Например, при наведении указателя мыши на элемент управления активируется состояние CommonStates.MouseOver. Изменения свойств можно анимировать на основе текущего состояния элемента управления. В предыдущем разделе <propertyTrigger> использовался для изменения фона кнопки на AliceBlue значение , когда IsMouseOver свойство было true. Теперь вместо этого создайте визуальное состояние, которое анимирует изменение этого цвета, обеспечивая плавный переход. Дополнительные сведения об элементе VisualStates см. в разделе Стили и шаблоны в WPF.

Чтобы преобразовать <PropertyTrigger> в анимированное визуальное состояние, сначала нужно удалить из шаблона элемент <ControlTemplate.Triggers>.

<ControlTemplate x:Key="roundbutton" TargetType="Button">
    <Grid>
        <Ellipse x:Name="backgroundElement" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</ControlTemplate>

Затем в раздел <Grid> шаблона элемента управления добавьте элемент <VisualStateManager.VisualStateGroups> с элементом <VisualStateGroup> для параметров CommonStates. Определите два состояния — Normal и MouseOver.

<ControlTemplate x:Key="roundbutton" TargetType="Button">
    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup Name="CommonStates">
                <VisualState Name="Normal">
                </VisualState>
                <VisualState Name="MouseOver">
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Ellipse x:Name="backgroundElement" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</ControlTemplate>

Все анимации, определенные в <VisualState>, применяются при активации соответствующего состояния. Создайте анимации для каждого состояния. Анимации помещаются в элемент <Раскадровка>. Дополнительные сведения о раскадровках см. в статье Общие сведения о Storyboard.

  • Норм.

    Это состояние анимирует заливку эллипса, восстанавливающую цвет Background элемента управления.

    <Storyboard>
        <ColorAnimation Storyboard.TargetName="backgroundElement" 
            Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)"
            To="{TemplateBinding Background}"
            Duration="0:0:0.3"/>
    </Storyboard>
    
  • MouseOver

    Это состояние анимирует изменение цвета Background эллипса на новый цвет: Yellow.

    <Storyboard>
        <ColorAnimation Storyboard.TargetName="backgroundElement" 
            Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" 
            To="Yellow" 
            Duration="0:0:0.3"/>
    </Storyboard>
    

Теперь <ControlTemplate> должен выглядеть следующим образом.

<ControlTemplate x:Key="roundbutton" TargetType="Button">
    <Grid>
        <VisualStateManager. VisualStateGroups>
            <VisualStateGroup Name="CommonStates">
                <VisualState Name="Normal">
                    <Storyboard>
                        <ColorAnimation Storyboard.TargetName="backgroundElement" 
                            Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)"
                            To="{TemplateBinding Background}"
                            Duration="0:0:0.3"/>
                    </Storyboard>
                </VisualState>
                <VisualState Name="MouseOver">
                    <Storyboard>
                        <ColorAnimation Storyboard.TargetName="backgroundElement" 
                            Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" 
                            To="Yellow" 
                            Duration="0:0:0.3"/>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager. VisualStateGroups>
        <Ellipse Name="backgroundElement" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}" />
        <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</ControlTemplate>

Запустите проект. Обратите внимание, что при наведении мыши на кнопку изменение цвета элемента <Ellipse> анимируется.

Дальнейшие действия

  • Создание стиля элемента управления
  • Стили и шаблоны
  • Общие сведения о ресурсах XAML

Бесплатные шаблоны для изготовления пуговиц от ABM — American Button Machines

Бесплатные шаблоны для изготовления пуговиц от ABM — American Button Machines
  • Дом
  • Магазин
  • О нас
  • Наша история
  • Свяжитесь с нами
  • Блог

Логин | Создать учетную запись

Корзина 0

Мы предоставили наши шаблоны кнопок ниже, чтобы помочь вам в создании кнопок обратной связи. Вы можете использовать наши готовые шаблоны или воссоздать шаблоны в выбранном вами программном пакете, а затем приступить к разработке своих кнопок.

Прочтите наш блог о пуговицах, чтобы узнать больше о программном обеспечении для изготовления пуговиц. Темы включают бесплатное программное обеспечение для создания пуговиц и наш профессиональный онлайн-центр дизайна Build-a-Button, который автоматически разрабатывает шаблоны для вас, что устраняет необходимость иметь дело с шаблонами вообще.

 

Шаблоны для изготовления кнопок для популярного программного обеспечения для графического дизайна.

Шаблоны кнопок Photoshop

Шаблоны кнопок Corel Draw

Шаблоны кнопок Print Shop

Шаблоны кнопок Open Office

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

 

Программное обеспечение для проектирования пуговиц от American Button Machines.

Возникли проблемы с использованием шаблонов для изготовления кнопок? Наш онлайн-центр дизайна Build-a-Button так же прост в использовании, как текстовый редактор. Попробуйте нашу демо сейчас бесплатно!

 

Полный список шаблонов кнопок включает слоганы.

НОВИНКА: по многочисленным просьбам мы добавили размеры для настройки тегов в вашей собственной программе графического дизайна. Строки тегов позволяют разместить контактную информацию на обратной стороне кнопки. Нажмите на размер кнопки ниже, чтобы загрузить один из наших бесплатных шаблонов для создания кнопок в формате PDF с вашим выбором, с лозунгами или без них.

 

Круглые шаблоны Слоганы Квадратные/ромбовидные шаблоны Прямоугольные шаблоны Миниатюрные круглые шаблоны Badge
Круглый шаблон 1,00 дюйма 1,00-дюймовый шаблон слогана Квадратный шаблон 1,50 x 1,50 дюйма Прямоугольный шаблон 1,75 x 2,75 дюйма Круглый шаблон 2,25 дюйма-BAM
Круглый шаблон 1,25 дюйма 1,25-дюймовый шаблон слогана Квадратный шаблон 2,0 x 2,0 дюйма Прямоугольный шаблон 2,00 x 3,00 дюйма Круглый шаблон 3,00 дюйма-BAM
Круглый шаблон 1,50 дюйма Шаблон слогана размером 1,50 дюйма Фотошаблон размером 2,00 x 3,00 дюйма
Круглый шаблон 1,75 дюйма Шаблон слогана размером 1,75 дюйма Прямоугольный шаблон 2,50 x 3,50 дюйма
Круглый шаблон 2,00 дюйма 2,25-дюймовый шаблон слогана
Круглый шаблон 2,25 дюйма Шаблон слогана размером 3,00 дюйма
Круглый шаблон 2,50 дюйма Шаблон слогана размером 3,50 дюйма
Круглый шаблон 3,00 дюйма Шаблон слогана размером 6,00 дюймов
Круглый шаблон 3,50 дюйма
Круглый шаблон 4,00 дюйма
Круглый шаблон 6,00″
СохранитьСохранитьСохранитьСохранить

бесплатных шаблонов для изготовления пуговиц для машин для изготовления пуговиц Photoshop — American Button Machines

Бесплатные шаблоны для изготовления пуговиц для машин для изготовления пуговиц в Photoshop — American Button Machines
  • Дом
  • Магазин
  • О нас
  • Наша история
  • Свяжитесь с нами
  • Блог

Логин | Создать учетную запись

Корзина 0

Мы предоставили наши шаблоны кнопок ниже, чтобы помочь вам в создании кнопок обратной связи. Просто заново создайте шаблоны в выбранном программном пакете и начните создавать свои кнопки.

  

Бесплатные шаблоны для изготовления кнопок для Photoshop

Ниже вы найдете бесплатные шаблоны для создания кнопок в программе Photoshop. Нажатие на приведенные ниже ссылки инициирует загрузку файла, который можно использовать в качестве шаблона для создания дизайнов кнопок в Photoshop.

Шаблон Photoshop для 1-дюймовых кнопок

Photoshop Шаблон для 1,25-дюймовых кнопок

Photoshop Шаблон для 1,5-дюймовых кнопок

Photoshop Шаблон для Кнопки 1,75 дюйма

Шаблон Photoshop для 2,25-дюймовых кнопок

Photoshop Шаблон для 3-дюймовых кнопок

Photoshop Шаблон для 3,5-дюймовых кнопок

900 72
 

 

Видеоруководство по Photoshop.

Как создать кнопку

 

 

Полный список шаблонов кнопок включает слоганы.

НОВИНКА: по многочисленным просьбам мы добавили размеры для настройки тегов в вашей собственной программе графического дизайна. Строки тегов позволяют разместить контактную информацию на обратной стороне кнопки. Нажмите на размер кнопки ниже, чтобы загрузить один из наших бесплатных шаблонов для создания кнопок в формате PDF с вашим выбором, с лозунгами или без них.

 

Круглые шаблоны Слоганы Квадратные/ромбовидные шаблоны Прямоугольные шаблоны Миниатюрные круглые шаблоны Badge
Круглый шаблон 1,00 дюйма 1,00-дюймовый шаблон слогана Квадратный шаблон 1,50 x 1,50 дюйма Прямоугольный шаблон 1,75 x 2,75 дюйма Круглый шаблон 2,25 дюйма-BAM
Круглый шаблон 1,25 дюйма Шаблон слогана размером 1,25 дюйма Квадратный шаблон 2,0 x 2,0 дюйма Прямоугольный шаблон 2,00 x 3,00 дюйма 3,00-дюймовый круглый шаблон-BAM
Круглый шаблон 1,50 дюйма Шаблон слогана размером 1,50 дюйма Фотошаблон размером 2,00 x 3,00 дюйма
Круглый шаблон 1,75 дюйма Шаблон слогана размером 1,75 дюйма Прямоугольный шаблон 2,50 x 3,50 дюйма
Круглый шаблон 2,00 дюйма Шаблон слогана размером 2,25 дюйма
Круглый шаблон 2,25 дюйма Шаблон слогана размером 3,00 дюйма
Круглый шаблон 2,50 дюйма Шаблон слогана размером 3,50 дюйма
Круглый шаблон 3,00 дюйма Шаблон слогана размером 6,00 дюймов
Круглый шаблон 3,50 дюйма
Круглый шаблон 4,00 дюйма
Круглый шаблон 6,00″
СохранитьСохранитьСохранитьСохранить

 

 

Программное обеспечение для создания пуговиц от American Button Machines.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *