Не пугайтесь по длине сообщения, это должно быть довольно простым. Я просто стараюсь быть очень сложным, потому что многие люди неправильно поняли меня, когда я объяснял проблему раньше.WinForm Controls + Transparency
Я искал решение для этого, но я не совсем нашел то, что искал.
Я пытаюсь установить параметры прозрачности для нескольких вложенных элементов управления, которые динамически добавляются во время выполнения. Я пробовал использовать общий прозрачный цвет программы, но кажется, что он рисует прозрачный слой ПОСЛЕ того, как он рисует элемент управления.
Я хочу больше контролировать, какие слои прозрачны, поэтому я могу панели слоев, элементы управления PictureBox с непрямоугольными изображениями и некоторые другие вещи. Я не могу рисовать изображение в событии Paint() (которое я сделал с большим успехом в другом месте), потому что у этих PictureBox есть клики, мыши, контекстное меню и другие связанные с ними вещи.
Таким образом, существуют ограничения.
В приведенном ниже примере WinForm должен подражать книге с «вкладками», чтобы перейти к следующей «главе» и различной графике, отображаемой «в книге». Важные технические бит ниже. Picture (slightly outdated)
FlowLayoutPanel FLP = Большая прямоугольная панель. Я хочу, чтобы он был «полностью прозрачным», потому что он используется только для его возможностей FlowLayout, а также для перемещения/изменения размера множества элементов управления. Он содержит следующие элементы управления.
1) Panel LeftTabs = Панель, содержащая LeftTabs.
2) Панельная книга = Панель, содержащая множество детских элементов управления. Имеет фоновое изображение (здесь нет проблем с прозрачностью, но проблемы с дочерними элементами - проблема).
3) Панель RightTabs = панель, содержащая правые клавиши.
***** Выпуск 1: Прозрачные панели вкладок ***** На вкладках имеются перекрывающиеся элементы управления PictureBox с закругленными углами - вроде как вкладки папок папки. Отсутствующие углы этих вкладок отображают фон элемента управления внизу, а не изображение вкладки next-further-down. На картинке выше я все еще пользовался ручными PictureBoxes, но теперь я перемещаю вкладки в панели вкладок, и я хочу, чтобы фон был прозрачным.
***** Выпуск 2: дочерние элементы управления внутри панели Book ***** Контрольная панель Книга содержит многочисленные дочерние панели (ребенок уровень 1), и каждый из этих содержит другой PictureBox и переменное количество элементов управления NumericUpDown (дочерний уровень 2).
NUDs хороши, но PictureBox (CL2) имеет больше закругленных углов.
Панели (CL1) должны быть полностью прозрачными (только с их использованием для группировки полномочий и логики), но эта прозрачность должна СТОП на уровне панели книг.
Надеюсь, все это имело смысл. Я пробовал множество исправлений в прошлом, прежде чем отказаться от этой проблемы, но теперь я решил сделать это правильно. Я попытался изменить формы элементов управления ([control] .Region), но это решение немыслимо грязно и делает будущие изменения (пользовательские скины) практически невозможными.
Привет, я не вижу ваш пример. Пожалуйста, предоставьте это/ – Ikaso
Вы имеете в виду пример кода? Я разместил фотографию, поэтому могу только предположить, что это то, что вы хотите. Я действительно не * имею * какой-либо код прямо сейчас, потому что я даже не знаю, как * начать попытки *, что я хочу делать. Соответствующий код в настоящий момент ничего не делает, кроме того, динамически добавлять элементы управления к другим элементам управления. Единственное, что я могу придумать, это обработчики событий Paint(), которые я использую для некоторых элементов управления PictureBox, но в основном это просто длинный список команд e.Graphics.DrawImage(). Можете уточнить свой вопрос, пожалуйста? –