XAML. Рамка кнопок

252
03 октября 2018, 18:00

Есть такой код на XAML

<Window x:Class="ToDo.MainWindow"
    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:ToDo"
    mc:Ignorable="d"
    Title="MainWindow" Height="584.517" Width="1039.419" WindowStyle="None">    
<Grid>
    <Grid Height="50" VerticalAlignment ="Top" Background="#FFF9B3AA">
        <Button HorizontalAlignment="Right" Height="25" Width="25" Margin="0,0,10,0" Background="{x:Null}">
            <Image Source="Images/close.png" Stretch="Fill"></Image>
        </Button>
    </Grid>
    <Grid Width="80" HorizontalAlignment = "Left" Background="#FFF46F5E">
        <StackPanel HorizontalAlignment="Center">
            <Button  Height="35" Width="35" Margin="0, 7.5 ,0 ,10" Background="{x:Null}">
                <Image Source="Images/menu.png" Stretch="Fill"></Image>
            </Button>
            <Button Height="35" Width="35" Margin="0, 10 ,0 ,10" Background="{x:Null}" >
                <Image Source="Images/plus.png" Stretch="Fill"></Image>
            </Button>
            <Button Height="35" Width="35" Margin="0, 10 ,0 ,10" Background="{x:Null}">
                <Image Source="Images/todo.png" Stretch="Fill"></Image>
            </Button>                
            <Button Height="35" Width="35" Margin="0, 350 ,0 ,10" Background="{x:Null}">
                <Image Source="Images/setting.png" Stretch="Fill"></Image>
            </Button>
        </StackPanel>
    </Grid>
    <Grid Width="300" HorizontalAlignment="Left" Margin="80, 50, 0, 0" Background="#FFF89284"></Grid>
    <Grid Width="651" HorizontalAlignment="Left" Margin="380, 50, 0 0" Background="White"></Grid>
    </Grid>

Получился такой интерфейс

Вопрос такой: как убрать рамки кнопок, чтобы были только иконки? И как закруглить углы окна? Подскажите пожалуйста

Answer 1

Для нескольких кнопок лучше всего юзать стили.
Вот такой [стиль], для кнопки вам должен подойти:

<Style TargetType="{x:Type Button}" x:Key="BorderlessButton">
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}">
                        <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

А потом просто передаете кнопке style:

<Button Style="{StaticResource BorderlessButton}">
<!-- your stuff here -->
</Button>

UPD. Отвечая на вопрос "где прописывать стили":

У вас есть App.xaml, в котором их можно прописать. Пишутся они так (пример) -

<Application.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
                 <!-- Вам нужно будет создать элемент Recource Dictionary -->
                 <ResourceDictionary Source="Buttons.xaml" />
            </ResourceDictionary.MergedDictionaries>
         </ResourceDictionary>
    </Application.Resources>
READ ALSO
Сохранить изображение большого грфика winforms

Сохранить изображение большого грфика winforms

Использую winForms для построения графиковМетод для сохранения изображения :

151
Чтение из файла по одному числу, c#

Чтение из файла по одному числу, c#

Столкнулся с такой проблемой: есть файл на миллион чисел, разделенных пробелом (одной строкой)Можно ли как-то читать числа по одному? Потому...

242
Валидация имён узлов xml-документа

Валидация имён узлов xml-документа

Имеется возможность добавлять объекты с пользовательским именем (textBox + AddButton) в списокДалее, на основе имен этих объектов будут генерироваться...

178
Создание массивов из текста

Создание массивов из текста

У меня например есть строка

153