powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Оформление xaml формы
25 сообщений из 28, страница 1 из 2
Оформление xaml формы
    #37361532
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Нарисовал форму авторизации в xaml
хотелось бы чтоб опытный человек глянул и сказал все ли я правильно оформил, мне почему то кажется что что то не так...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
<Window x:Class="frmLogin.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Авторизация" Height="145" Width="410" WindowStyle="ToolWindow"  WindowStartupLocation="CenterScreen" ResizeMode="NoResize" >
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="3" />
            <RowDefinition Height="23" />
            <RowDefinition Height="8" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="8" />
            <ColumnDefinition Width="96" />
            <ColumnDefinition Width="8" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="75" />
            <ColumnDefinition Width="8" />
            <ColumnDefinition Width="75" />
            <ColumnDefinition Width="8" />
        </Grid.ColumnDefinitions>
        <Button Content="ОК" Grid.Column="4" Grid.Row="2"  Name="btnOk" IsDefault="True" Click="btnOk_Click" />
        <Button Content="Отмена" Grid.Column="6" Grid.Row="2"  Name="btnCancel" IsCancel="True" Click="btnCancel_Click" />
        <GroupBox Grid.Column="3" Grid.ColumnSpan="4" Header="Пользователь"  Name="groupBox1" >
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <StackPanel Grid.Row="0" Name="stackPanel1" Orientation="Horizontal" HorizontalAlignment="Right">
                    <Label Content="Имя:" HorizontalAlignment="Center" />
                    <ComboBox Text="asd" Width="200" Height="23" >
                        Иванов
                    </ComboBox>
                </StackPanel>
                <StackPanel Grid.Row="1"  Name="stackPanel2" Orientation="Horizontal" HorizontalAlignment="Right" >
                    <Label Content="Пароль:" HorizontalAlignment="Center"/>
                    <PasswordBox Width="200" Height="23" />
                </StackPanel>
            </Grid>
        </GroupBox>
        <Image Source="/frmLogin;component/Images/Penguins.jpg" Grid.ColumnSpan="1" Grid.Column="1"/>
    </Grid>
</Window>


...
Рейтинг: 0 / 0
Оформление xaml формы
    #37373047
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForever,

Не супер опытный xaml'ер, но:
Юзайте margin/padding

Нет смысла давать имена стекпанелям и прочим гридам, если не собираетесь на них ссылаться

Нет смысла задавать высоты/ширины, если этим уже управляет панель

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1"
        Height="145"
        Width="410">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Image Grid.Row="0"
               Grid.Column="0"
               Width="100"
               Margin="5"/>
            <GroupBox Margin="5 0 5 5"
                      Header="text"
                      Padding="2"
                      Grid.Row="0"
                      Grid.Column="1">
                <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <StackPanel Grid.Row="0" HorizontalAlignment="Right" Orientation="Horizontal">
                    <Label Margin="0 0 2 0">1:</Label>
                    <TextBox Width="200" />
                </StackPanel>
                <StackPanel Grid.Row="1"
                            HorizontalAlignment="Right"
                            Orientation="Horizontal">
                    <Label Margin="0 0 2 0">2:</Label>
                    <TextBox Width="200" />
                </StackPanel>
            </Grid>
            </GroupBox>
        <StackPanel Grid.Column="1"
                    Grid.Row="1"
                    Orientation="Horizontal"
                    HorizontalAlignment="Right"
                    Margin="5 0 5 5">
            <Button Width="75"
                    Height="23"
                    Margin="0 0 10 0" />
            <Button Width="75"
                    Height="23" />
        </StackPanel>
    </Grid>
</Window>
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37373296
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForever,
покажите принтСкрин формы
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37376426
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот переделал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<Window x:Class="frmLogin.authorization"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Авторизация" Height="140" Width="380" WindowStyle="ToolWindow" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" Loaded="Window_Loaded">
    <Grid >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="3*"/>
        </Grid.ColumnDefinitions>
        <DockPanel LastChildFill="True" Grid.Column="1" Margin="0,0,5,0" >
            <StackPanel Margin="0,0,1,5" Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Right" >
                <Button Margin="0,0,5,0"  Width="70"  Content="Настройка" Visibility="Hidden" />
                <Button Margin="0,0,5,0"  Width="70"  Content="ОК" IsDefault="True" />
                <Button Width="70" Content="Отмена" Command="{Binding ExitCommand}" IsCancel="True" />
            </StackPanel>
            <GroupBox Header="Пользователь:"  Grid.Column="1" VerticalAlignment="Top" >
                <Grid Margin="0,1,0,0" >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Margin="1,1,2,1" Text="Имя:"/>
                    <ComboBox  Margin="0,0,0,1" Grid.Column="2" IsEditable="True" DropDownClosed="ComboBox_DropDownClosed">
                        <ComboBoxItem Selector.IsSelected="True">Григорьев</ComboBoxItem>
                        <ComboBoxItem>Сераговский</ComboBoxItem>
                        <ComboBoxItem>Елизаров</ComboBoxItem>
                    </ComboBox>
                    <TextBlock   Grid.Column="0" Margin="1,2,2,1" Text="Пароль:" Grid.Row="1"/>
                    <PasswordBox  Name="PasswordBox" Margin="0,2,0,0" Grid.Column="2" Grid.Row="1" MaxLength="16" KeyDown="PasswordBox_KeyDown" />
                </Grid>
            </GroupBox>
        </DockPanel>
        <Image Grid.Column="0" Source="/Images/User1.png" />
    </Grid>
</Window>

Вот скрин

http://saveimg.ru/show-image.php?id=22f80b17a4d54483be7ccdbbab4de3b3
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37376566
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохой вариант:
- фиксированные размеры
- везде присутсвуют Margin
- DockPanel - не самый шустрый вариант, без которого можно обойтись

После увеличения масштабирования шрифта в системных настройках, твоя форма развалится
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37376581
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,
хм... а можно тогда Ваш вариант посмотреть реализации данного примера, как правильно сделать....
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37376753
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForever,

Грид 2х2:
- левый столбец полностью под картинку
- правая нижняя ячейка под кнопки, завернутые в стэк панель
- правая вверхняя - груп бокс в котором грид 2х2 для текст боксов и текст блоков.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37377053
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руки-крюки, по вашему совету,
вот что у меня получилось, но внешний вид не очень что сделал не так ?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<Window x:Class="frmLogin.frmLogin2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Авторизация" Height="140" Width="380" WindowStyle="ToolWindow">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="3*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <Image Grid.RowSpan="2"  Source="/frmLogin;component/Images/User1.png" />
        <GroupBox Grid.Column="1" Header="Пользователь" Grid.Row="0">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="Имя:"/>
                <TextBlock Grid.Row="1" Text="Пароль:"/>
                <ComboBox Grid.Row="0" Grid.Column="2"/>
                <PasswordBox Grid.Column="2" Grid.Row="1"/>
            </Grid>
        </GroupBox>
        <StackPanel Grid.Column="1" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
            <Button Width="80" Content="ОК" />
            <Button Width="80" Content="Отмена" />
        </StackPanel>
    </Grid>
</Window>


...
Рейтинг: 0 / 0
Оформление xaml формы
    #37377209
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это уже значительно лучше.
Осталось убрать:

<Window Height="140" Width="380"
и
<StackPanel Grid.Column="1" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Width="80" Content="ОК" />
<Button Width="80" Content="Отмена" />
</StackPanel>

По второму пункту см SharedSizeGroup
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37377993
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Кстати, насчет фиксированных размеров формы — очень верное замечание.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378020
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

По первому пункту убрал размер форма, стала маленькой, но при запуске она почти на весь экран растянутая.
По второму пункту не получается на МСДН читал но не совсем понятно как использовать, пробывал но что то никакого эффекта
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378033
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как выглядет сейчас
добавил
SizeToContent="WidthAndHeight"
чтоб форма не разъезжалась
http://imageshost.ru/photo/73212/id784193.html
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378096
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForever,

мелкая вышла, елементы без отступов близко друг к другу, некрасиво как-то
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378118
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что за кнопка 'Отмена' - для чего она?
при пустом пароле сделайте 'Ок' неактивной
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378205
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForeverВот как выглядет сейчас
добавил
SizeToContent="WidthAndHeight"
чтоб форма не разъезжалась
http://imageshost.ru/photo/73212/id784193.html

ОК.
Посмотри, как задать одинаковые размеры кнопок
c исходниками

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3**" />
<RowDefinition Height="*Auto" />

Чтобы форма не была маленькой и скученной: добавить отступы в основной грид, укажи минимальную ширину для Имени, etc
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37378578
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Все правильно говорите, вот только сейчас:
SeVaдобавить отступы в основной грид
А до этого:
SeVaПлохой вариант:
...
- везде присутсвуют Margin

2автор:
Столбец с именем и паролем выровняйте по правому краю. См. картинку.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379566
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic, если нравится заниматься буквоедством, то вынеси margin в стиль.
Выравнивание вправо - это уже на любителя. На мой вкус и цвет эти метки совсем не нужны, их лучше казывать в контролах ввода, когда они пустые
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379811
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaenigmatic, если нравится заниматься буквоедством, то вынеси margin в стиль.
Так ведь без разницы где margin задан, если он задан - без него все равно не обойтись когда он нужен.
SeVaих лучше казывать в контролах ввода, когда они пустые

Тоже верно.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379834
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
koJIo6ok,

Ну кнопка "Отмена" на случимй если пользователь передумал заходить в программу можно конечно по крестику сверх но так вроде как стандарт в большинстве программ так сделано...
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379857
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уф....
Вот что у меня в итоге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<Window x:Class="frmLogin.frmLogin2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Авторизация"  WindowStyle="ToolWindow" SizeToContent="WidthAndHeight" ResizeMode="NoResize">
    <Grid Margin="5" >
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto"  />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto"  />
        </Grid.ColumnDefinitions>
        <Image Grid.RowSpan="2" Source="/frmLogin;component/Images/1250180236_2888006_3352.gif" />
        <GroupBox Grid.Column="1" Header="Пользователь" Grid.Row="0">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="Имя:" HorizontalAlignment="Right" />
                <TextBlock Grid.Row="1" Text="Пароль:" HorizontalAlignment="Right" />
                <ComboBox Grid.Row="0" Grid.Column="2">
                    <ComboBoxItem Selector.IsSelected="True">Иванов П.И.</ComboBoxItem>
                    <ComboBoxItem>Просто Ваня</ComboBoxItem>
                </ComboBox>
                <PasswordBox Grid.Column="2" Grid.Row="1"/>
            </Grid>
        </GroupBox>
        <Grid Grid.Column="1" Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition  SharedSizeGroup="Button"/>
                <ColumnDefinition  SharedSizeGroup="Button"/>
            </Grid.ColumnDefinitions>
            <Button Content="ОК" Grid.Column="1" />
            <Button Content="Отмена" Grid.Column="2" />
        </Grid>
     
    </Grid>
</Window>
Уже голову сломал, походу у меня руки крывые но никак не могу добится хорошего результата
Если не солжно выложите Выш пример чтоб посмотреть как правильно нужно делать.....
Буду очень благодарен..............
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379860
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется вот такого результата
http://imageshost.ru/photo/171039/id785822.html
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379862
ZenForever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну только стандартными контролами, без плоского стиля.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379909
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForeverХочется вот такого результата
http://imageshost.ru/photo/171039/id785822.html
ну так а что не выходит? все ведь просто и наглядно
можете и поярче что сделать
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379968
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZenForeverХочется вот такого результата
http://imageshost.ru/photo/171039/id785822.html

Ничего лишнего, но стандартно, серо и убого.
Бери Blend и делай нужные стили.
...
Рейтинг: 0 / 0
Оформление xaml формы
    #37379971
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koJIo6okможете и поярче что сделать
Колобок, не нужно и так - вырви глаз ;-)
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Оформление xaml формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]