Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1

Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window

03.06.2012, 00:07. Показов 1530. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window? очень неудобно: я привык всегда танцевать от верхнего левого угла, и то, что в редакторе некоторые объекты торчат за поле окна, раздражает.
может быть, у меня что-то не так в настройках? подскажите, если кто знает. сделаете мою жизнь еще краше.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2012, 00:07
Ответы с готовыми решениями:

Создаваемый проект по умолчанию API 21: Android 4.X, если изменить на любой другой вылетают ошибки
На вложенных картинках показано, если менять версию то в консоле столько ошибок, как же это исправить. Часть из консоли написал сюда, а во...

Почему в Opera v12.0 координаты окна браузера относительно экрана window.screenX или window.screenY выдает 0?
Здравствуйте, подскажите пожалуйста почему в Opera v 12.0, координаты окна браузера относительно экрана - window.screenX или...

Ручное создание Window и Grid
Здравствуйте! Решила создать окно WPF с кнопкой, не на XAML, а на C#. Вот создано окно и кнопка, но не могу сообразить как ее отобразить в...

11
 Аватар для alexsave
274 / 204 / 30
Регистрация: 18.08.2010
Сообщений: 229
03.06.2012, 07:41
Скинь XAML-разметку, генерируемую по умолчанию и желательно скриншот, где показано это смещение
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 13:15  [ТС]
хороший вопрос. навел меня на то, что я "недосказал" то, что в "нормальном" окне все ок, но у меня все окна ResizeMode="NoResize" WindowStyle="None". последнее, видимо, играет эту вредную роль.
попробуй создать новое окно, добавь туда клавишу в левый нижний угол со свойствами HorizontalAlignment="Left" VerticalAlignment="Top". запусти, и все будет красиво, как и в дизайнере.
а теперь поменяй свойство окна на WindowStyle="None" и увидишь, что в дизайнере оно выглядит уже не так, как "в реале". пробовал всякие ухищрения, ничего не улучшает ситуацию.
0
 Аватар для alexsave
274 / 204 / 30
Регистрация: 18.08.2010
Сообщений: 229
03.06.2012, 14:00
Проделал вышеуказанные действия и никакого смещения не обнаружил. Может все таки код в студию?
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 14:34  [ТС]
created:

XML
1
2
3
4
5
6
7
8
<Window x:Class="NewGui2009V.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="300" Width="300">
    <Grid>
        
    </Grid>
</Window>
button added:

XML
1
2
3
4
5
6
7
8
9
10
<Window x:Class="NewGui2009V.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="300" Width="300">
    <Grid>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" 
                Margin="0,238,0,0" Name="button1" 
                VerticalAlignment="Top" Width="75" />
    </Grid>
</Window>
WindowStyle="None":

XML
1
2
3
4
5
6
7
8
9
10
<Window x:Class="NewGui2009V.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="300" Width="300" WindowStyle="None">
    <Grid>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" 
                Margin="0,238,0,0" Name="button1" 
                VerticalAlignment="Top" Width="75" />
    </Grid>
</Window>
скриншотов тоже наделал и в дизайне, и при выполнении, но не вижу как их вставить.
но я думаю, сам увидишь, в чем проблема: пока WindowStyle="SingleBorderWindow", кнопка при выполнении там же, куда я ее в дизайне разместил: в левом нижнем углу. как только стиль меняешь на None - в дизайне она там, а на ходу - "не совсем".
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 14:47  [ТС]
попробую скриншоты скрепочкой приделать. не знаю, что получится.
порядок следующий:
- created design
- button added design
- button added run
- WindowStyle="None" design
- WindowStyle="None" run
Миниатюры
Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window   Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window   Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window  

Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window   Почему Grid, создаваемый по умолчанию, смещен по отношению к содержащему его Window  
0
 Аватар для alexsave
274 / 204 / 30
Регистрация: 18.08.2010
Сообщений: 229
03.06.2012, 14:48
Ну ясен пень, что кнопка сдвинется, т.к. при WindowStyle="None" заголовок не отображается и при этом высота и ширина окна остались теми же. Кнопка в результате окажется выше исходного состояния на величину ширины заголовка. Компоновка с помощью отступов не является наилучшей, не легче:
XML
1
2
3
<Button Content="Button" Height="23" HorizontalAlignment="Left" 
                 Name="button1" 
                VerticalAlignment="Bottom" Width="75" />
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 16:33  [ТС]
Цитата Сообщение от alexsave Посмотреть сообщение
Ну ясен пень, что кнопка сдвинется, т.к. при WindowStyle="None" заголовок не отображается и при этом высота и ширина окна остались теми же. Кнопка в результате окажется выше исходного состояния на величину ширины заголовка. Компоновка с помощью отступов не является наилучшей, не легче:
XML
1
2
3
<Button Content="Button" Height="23" HorizontalAlignment="Left" 
                 Name="button1" 
                VerticalAlignment="Bottom" Width="75" />
ты думаешь, я этого не пробовал? это хорошо, когда у тебя одиночный элемент, но ты попробуй создать столбец кнопок снизу до верху, с одинаковыми расстояниями между ними. и половину "привяжи" к верху, половину - к низу. потом запусти и посмотри, что ты увидишь.

решением было бы убрать из Design View имя окна сверху. это из-за него грид и окно в дизайне смещены. наверняка есть какой-нибудь простой "клац! и все!", только где он?
0
 Аватар для alexsave
274 / 204 / 30
Регистрация: 18.08.2010
Сообщений: 229
03.06.2012, 16:46
И чтож теперь компоновать отступами? Элементы же все равно расползутся на мониторах с другим расширением и dpi, хоть у тебя будет смотреться все нормально.
Цитата Сообщение от novi4ok Посмотреть сообщение
это хорошо, когда у тебя одиночный элемент, но ты попробуй создать столбец кнопок снизу до верху, с одинаковыми расстояниями между ними. и половину "привяжи" к верху, половину - к низу. потом запусти и посмотри, что ты увидишь.
Приведи пример, как ты это реализуешь, а я покажу как просто скомпоновать
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 17:24  [ТС]
Цитата Сообщение от alexsave Посмотреть сообщение
И чтож теперь компоновать отступами? Элементы же все равно расползутся на мониторах с другим расширением и dpi, хоть у тебя будет смотреться все нормально.

Приведи пример, как ты это реализуешь, а я покажу как просто скомпоновать
так проще простого! размести вдоль левого края окна кнопки одна под одной, с одинаковыми расстояниями между ними так, чтобы верхняя "упиралась в потолок", а нижняя "лежала на полу".
подожди с "другими мониторами". пока речь идет о моем едитственном. я хочу просто видеть то, что я компоную в дизайне, так же выглядящем на моем же экране. пока единственный способ - привязывать все к левому верхнему углу и терпеть, что то, что "лежит на полу" при выполнении, находится ниже ватерлинии в дизайне.
0
 Аватар для alexsave
274 / 204 / 30
Регистрация: 18.08.2010
Сообщений: 229
03.06.2012, 17:35
Лови:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<Grid>
        <Grid.Resources>
            <Style TargetType="{x:Type Button}">
                <Setter Property="MinWidth" Value="100"/>
                <Setter Property="HorizontalAlignment" Value="Left"/>
                <Setter Property="Margin" Value="0,0,0,5"/>
            </Style>
        </Grid.Resources>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Button Content="1_but"/>
        <Button Content="2_but" Grid.Row="1"/>
        <Button Content="3_but" Grid.Row="2"/>
        <Button Content="4_but" Grid.Row="3"/>
        <Button Content="5_but" Grid.Row="4"/>
        <Button Content="6_but" Grid.Row="5" Margin="0,5,0,0"/>
    </Grid>
1
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.06.2012, 21:04  [ТС]
полезно для опыта. спасибо.
но ты разве не видишь дыру между 5but и 6but? хотя уже приятно, что дыра и в дизайне, и при выполнении.

Добавлено через 51 минуту
придумал некрасивое решение, такой себе work around

in XAML:
XML
1
<Grid Name="grid" Margin="0,-40,0,0" ...
in code behind:

Code
1
2
3
        public Window2() {
            InitializeComponent();
            grid.Margin = new Thickness(0, 0, 0, 0);
некрасиво, но работает четко: что видишь в дизайне, то и при выполнении. пиксел в пиксел.
лучше, чем ничего.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2012, 21:04
Помогаю со студенческими работами здесь

Может ли объект-член, или объект-элемент достучаться к содержащему его?
Предположим, class A { ... }; class B { .... A a; ... };

VS 2015 Тип "Window" не поддерживает непосредственное содержимое и подчеркивает <Grid>
Создаю проект WPF Application в VS 2015, и я его даже не меняла! но подчеркивается &lt;Grid&gt; &lt;/Grid&gt; в MainWindow.xaml Тип...

Возможно ли задать в XAML число строк и столбцов Grid сразу, без исп <Grid.ColumnDefinitions> и <Grid.RowDefinnitions>?
Возможно ли задать в XAML число строк и столбцов Grid сразу, без исп &lt;Grid.ColumnDefinitions&gt; и &lt;Grid.RowDefinnitions&gt;?

Почему top является [Window Object]?
$(document).ready(function(){ // Cursor position $(document).mousemove(function(event){ cursorX = event.pageX+10; ...

Почему не работает grid?
Хочу задать grid'ом в строку 8 блоков, они почему-то идут в колонку. Что не так? Как исправить? &lt;!DOCTYPE html&gt; &lt;html&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru