2013-11-01 1 views
0

Мой FORM устанавливается на эти свойства:Как установить backcolor элемента управления на желаемый элемент управления в C#?

FormBorderStyle = None; 
BackColor = 64, 0 64; 
Transparency Key = 64, 0 64; 

Затем я поставил rectangleShape1 и label1 в моей форме.

rectangleShape1 недвижимость:

BackColor = SaddleBrown; 

label1 недвижимость:

BackColor = transparent; 

Я хочу label1.BackColor = transparent; быть в BackColor rectangleShape1, а не в BackColor моей формы. Является ли это возможным? Как мне это сделать? Благодарю.

Редактировать

Я хочу BackColor моего label1 быть прозрачным, потому что я хочу, чтобы просмотреть BackgroundImage моего rectangleShape1.

+0

Просто установите цвет: 'label1.BackColor = SaddleBrown'. Это также сделает ярлык коричневым. – PMF

+0

Но я хочу использовать прозрачный. Невозможно? Coz У моего 'rectangleShape1' есть BackgroundImage. Я хочу, чтобы он отображался.Не покрывается обратным цветом метки1. –

+0

Прозрачный - это просто имя, которое берет его под цвет как свой собственный. По крайней мере, так оно и есть в Visual Studio. PMF ответил вам. – MahanGM

ответ

1

Установка BackColor элемента управления на Color.Transparent означает, что он использует свой родительский фон.

Вот варианты:

  1. Если предположить, что rectangleShape1 является своим родом контроля вы можете сделать его родителем наклейки:

    label1.BackColor = Color.Transparent; 
    label1.Parent = rectangleShape1; 
    

    Это будет, однако, ограничивает степень метки к прямоугольнику.

  2. Создайте свой собственный transparent label.

0

Прозрачный не существует в Label и большинстве элементов управления, если вы на самом деле не перезаписываете on_paint. Прозрачный просто установить цвет родительского контейнера:

Label1.BackColor = Color.Transparent 

=

Label1.BackColor = Label1.Parent.BackColor 

Просто установите родительский контейнер для прямоугольника при условии, что это контейнер и ваш хорошо идти. В противном случае вам нужно будет вывести некоторые классы, чтобы создать контейнер прямоугольника.

Редактировать: Если вам нужны другие вопиющие доказательства аналогичного поведения, тогда создайте групповой ящик, добавьте метки внутри, затем измените размер шрифта, семью и т. Д. И проверите ярлык, изменяя их сами. даже мысль о нем указана на родительском групповом поле. чтобы это поведение просто положило панель в поле группы и перетащило всю метку внутри, сделайте то же самое, и вы ничего не увидите.

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

+0

'label1.Parent' может отображать некоторую« картинку », поэтому переход на родительский BackColor не будет работать –

+0

, тогда он может использовать классы Graphics и использовать функцию drawtext для записи непосредственно на picture.drawtext не имеет фона , – Franck

Смежные вопросы