Groupbox c wpf как убрать границы
Перейти к содержимому

Groupbox c wpf как убрать границы

  • автор:

Скрыть все кнопки в GroupBox

Доброго времени суток всем читающим!
Сразу предупреждаю, что я новичок и ещё только осваиваю все прелести C#. Если ошибка слишком очевидна — не кидайтесь тапками слишком сильно.
Мне необходимо при нажатии определённой кнопки скрыть в определённом GroupBox все находящиеся в нём кнопки
Пытался сделать это через foreach следующим образом:

1 2 3 4 5
private void button81_Click(object sender, EventArgs e) foreach (Button button in groupBoxPL1.Controls.OfTypeGroupBox>()) { button.Visible = false; }

Однако этот цикл не работает, и при нажатии на кнопку ничего не происходит. Пробовал и другой способ (следующий код я нашёл в интернете)

1 2 3 4 5 6 7 8 9 10 11 12 13
private void button81_Click(object sender, EventArgs e) { foreach (Control control in Controls) { if(control is GroupBox) { foreach(Control ctrl in (control as GroupBox).Controls) { ctrl.Visible = false; } } } }

Этот код работает частично: он скрывает кнопки только в одном GroupBox (у меня в форме их всего два) и то не в том, в котором мне нужно (он скрывает их в groupBox1, который я ещё не успел переименовать, а мне нужно чтобы скрывал в groupBoxPL1)

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Скрыть не все кнопки
У меня имеются 100 кнопок(Button) скрытых, как сделать видимыми например столько сколько написано в.

Скрыть все кнопки циклом
Как скрыть все (допустим их 10) кнопки циклом с#

Как скрыть все панели, кроме одной при нажатии любой кнопки?
По дефолту есть две панели, слева и справа. При нажатии в любую точку(или кнопку) в левой панели.

Скрыть все кнопки, кроме некоторых
Здравствуйте! Самостоятельно изучаю делфи. Вот такой вопрос. Допустим, у меня на форме 100 кнопок.

761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856

ЦитатаСообщение от NorthMan Посмотреть сообщение

1 2 3 4
foreach (Button button in groupBoxPL1.Controls.OfTypeGroupBox>()) { button.Visible = false; }

надо по другому))

foreach (Button button in groupBoxPL1.Controls.OfTypeButton>()) button.Visible = false;

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Быстро скрыть все кнопки автофильтра
Как быть если нужно быстро скрыть 300 или более кнопок автофильтра, оставив лишь десяток нужных.

При нажатии на кнопку часть надписей становятся видимыми, а другие — невидимыми. Цель игры — скрыть все кнопки
Разработайте игру,которая заключается в следующем.На форме размещены пять кнопок (Button).При.

Создание GroupBox по нажатию кнопки
Есть два лейбла и два текстбокса, объединённых в GroupBox. Необходимо чтобы по нажатию на Button.

Как привязать кнопки к GroupBox?
Здравствуйте. Внизу окна есть 3 GroupBox`а с кнопками и едитами (слева, по центру и справа), так.

Игра «Скрыть все кнопки»
Разработайте игру, которая заключается в следующем. На фор-ме размещены пять кнопок (Button). При.

Свойство Dock для кнопки в GroupBox
Есть GroupBox, на нем button и listbox button ставлю Dock — Top listbox — Fill Получается вот.

Можно ли убрать рамки у запускаемой программы?

Здравствуйте, собственно вопрос.
Запускаю сторонний exe как дочернее окно в форме. И крайне не нравится, что у открывающегося приложения свои рамки (особенно верхняя). Можно ли как то реализовать чтобы её не было?
К примеру запустить тот же самый калькулятор, где будут только кнопки и не будет рамок.
Заранее спасибо за помощь.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Узнать дескриптор окна запускаемой программы
Здравствуйте. Запускаю программу таким образом: ProcessStartInfo startInfo = new.

Как убрать рамки у ListViewItem?
Как убрать рамки у ListViewList и у самого ListView? Я пробывал через BorderBush="".

Как убрать прозрачность рамки groupBox в VS2010
Здравствуйте! такая проблема. На форме есть groupBox. Когда запускаю приложение рамка у него.

Убрать чекбокс с сохранением запускаемой им функции
Здравствуйте, в коде есть такой чекбокс <input type="checkbox" name="register".

Master of Orion

Эксперт .NET

6096 / 4952 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5

yay, очень сильно сомневаюсь, что можно. На WPF наверное можно — просто накладыванием всяких непрозрачных масок. Хотя тут у нас есть скилловые люди в winapi, может есть какие-то таинства, о которых я не знаю.

Эксперт .NET

4431 / 2091 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1

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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; namespace ConsApp_HideBorder { internal class Program { private static void Main(string[] args) { Process proc = Process.Start("notepad"); while (!proc.WaitForInputIdle()) { Thread.Sleep(50); } WindowsReStyle(); //Console.WriteLine("И запустим нормальный блокнот"); //Process.Start("notepad"); Console.WriteLine("Всё"); Console.ReadKey(); } #region Constants //Finds a window by class name [DllImport("USER32.DLL")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); //Sets a window to be a child window of another window [DllImport("USER32.DLL")] public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); //Sets window attributes [DllImport("USER32.DLL")] public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); //Gets window attributes [DllImport("USER32.DLL")] public static extern int GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)] private static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName); [DllImport("user32.dll")] private static extern IntPtr GetMenu(IntPtr hWnd); [DllImport("user32.dll")] private static extern int GetMenuItemCount(IntPtr hMenu); [DllImport("user32.dll")] private static extern bool DrawMenuBar(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags); //assorted constants needed public static uint MF_BYPOSITION = 0x400; public static uint MF_REMOVE = 0x1000; public static int GWL_STYLE = -16; public static int WS_CHILD = 0x40000000; //child window public static int WS_BORDER = 0x00800000; //window with border public static int WS_DLGFRAME = 0x00400000; //window with double border but no title public static int WS_CAPTION = WS_BORDER | WS_DLGFRAME; //window with a title bar public static int WS_SYSMENU = 0x00080000; //window menu #endregion public static void WindowsReStyle()  Process[] Procs = Process.GetProcesses(); foreach (Process proc in Procs) { if (proc.ProcessName.StartsWith("notepad")) { IntPtr pFoundWindow = proc.MainWindowHandle; int style = GetWindowLong(pFoundWindow, GWL_STYLE); //get menu IntPtr HMENU = GetMenu(proc.MainWindowHandle); //get item count int count = GetMenuItemCount(HMENU); //loop & remove for (int i = 0; i  count; i++) RemoveMenu(HMENU, 0, (MF_BYPOSITION  } } } }

Groupbox c wpf как убрать границы

Элементы WPF обладают набором свойств, которые помогают позиционировать данные элементы. Рассмотрим некоторые из этих свойств.

Ширина и высота

У элемента можно установить ширину с помощью свойства Width и высоту с помощью свойства Height . Эти свойства принимают значение типа double . Хотя общая рекомендация состоит в том, что желательно избегать жестко закодированных в коде ширины и высоты.

Также мы можем задать возможный диапазон ширины и высоты с помощью свойств MinWidth/MaxWidth и MinHeight/MaxHeight . И при растяжении или сжатии контейнеров элементы с данными заданными свойствами не будут выходить за пределы установленных значений.

Возможно, возникает вопрос, а в каких единицах измерения устанавливаются ширина и высота? Да и в общем какие единицы измерения используются? В WPF можно использовать несколько единиц измерения: сантиметры ( cm ), точки ( pt ), дюймы ( in ) и пиксели ( px ). Например, зададим размеры в других единицах:

Если единица измерения не задана явно, а просто стоит число, то используются по умолчанию пиксели. Но эти пиксели не равны обычным пикселям, а являются своего рода «логическими пикселями», независимыми от конкретного устройства. Каждый такой пиксель представляет 1/96 дюйма вне зависимости от разрешения экрана.

Выравнивание

HorizontalAlignment

С помощью специальных свойств мы можем выровнять элемент относительно определенной стороны контейнера по горизонтали или вертикали.

Свойство HorizontalAlignment выравнивает элемент по горизонтали относительно правой или левой стороны контейнера и соответственно может принимать значения Left, Right, Center (положение по центру), Stretch (растяжение по всей ширине). Например:

Свойство HorizontalAlignment в WPF

VerticalAlignment

Также мы можем задать для элемента выравнивание по вертикали с помощью свойства VerticalAlignment , которое принимает следующие значения: Top (положение в верху контейнера), Bottom (положение внизу), Center (положение по центру), Stretch (растяжение по всей высоте). Например:

Свойство VerticalAlignment в WPF

Отступы margin

Свойство Margin устанавливает отступы вокруг элемента. Синтаксис: Margin=»левый_отступ верхний_отступ правый_отступ нижний_отступ». Например, установим отступы у одной кнопки слева и сверху, а у другой кнопки справа и снизу:

Свойство Margin в WPF

Если мы зададим свойство таким образом: Margin=»20″, то сразу установим отступ для всех четырех сторон.

Panel.ZIndex

При создании интерфейса возможна ситуация, когда одни элементы будут полностью или частично перекрывать другие. По умолчанию те элементы, которые определены позже, перекрывают те элементы, которые определены ранее. Однако мы можем изменить подобное действие с помощью свойства Panel.ZIndex.

По умолчанию для всех создаваемых элементов Panel.ZIndex=»0″ . Однако назначив данному свойству более высокое значение, мы можем передвинуть его на передний план. Элементы с большим значением этого свойства будут перекрывать те элементы, у которых меньшее значение этого свойства:

    

Убрать рамку с groupbox c#

@Andrew это вообще не повод закрывать вопросы. Дух поднимает те вопросы, в которых нет ответов с рейтингом хотя бы 1. Достаточно просто плюсануть ответ.

– user177221
12 окт 2019 в 21:36

@Andrew можете дать ссылку, где именно? (Upd, ок если нет). Вообще вопросы стоит закрывать только если для ответа нужна правка от автора (именно от автора, доп инфа, например), или если вопрос — оффтопик. Вот тема на мете: ru.meta.stackoverflow.com/q/1936/177221

– user177221
12 окт 2019 в 21:57

@PashaPash нужно искать по истории браузера за несколько недель. на 2х компьютерах. я не помню как тема называлась — я на нее тогда нечаянно набрел =( Если очень нужно — поищу. Но чесно — этим заниматся влом.Если отпишешь что оч нужно — завтра выделю время и найду

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

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