Допустим, у вас есть стандартный ValidationSummary:
<%: Html.ValidationSummary(excludePropertyErrors: true) %>
Если ModelState содержит ошибки модели для свойств, но не для самой модели, ValidationSummary отображает следующий HTML-код:
<div class="validation-summary-errors"><ul><li style="display:none"></li></ul></div>
который отображается как пустой список но все еще виден из-за красной рамки вокруг списка. Мне это кажется ошибкой. {Цвет transparentBlack = новый цвет (0, 0, 0, i); } У меня есть эффект объекта, использующего этот цвет для рисования с переходом от черного к ...
Если я использую следующий
for(int i = 255; i > 0; i--)
{
Color transparentBlack = new Color(0, 0, 0, i);
}
, я получаю эффект объекта, использующего этот цвет для рисования с переходом от черного к светло-серый, а затем невидимый, когда значение альфа становится равным нулю. Однако, если я начну с белого значения:
new Color(255, 255, 255, i);
Объекты никогда не станут невидимыми, а останутся только белыми. Я также заметил, что если я использую значение, которое немного светлее черного (например, 50, 50, 50), рисунок переходит от темного к невидимому и белому.
Я предполагаю, что я просто не понимаю как работает альфа-смешивание, но есть ли способ заставить белый цвет исчезнуть до полупрозрачности?
Редактировать: Фон, на котором я рисую, это Color.CornflowerBlue (100,149,237,255)
Редактировать: Пример программы XNA, воспроизводящей объяснение. Использовать; создайте новую XNA Game Studio 4.
Редактировать: Один из комментариев касается того, что это "особенность" окон, связанная только с текстом. Я использовал текст в качестве примера, чтобы демонстрационная программа была небольшой; тестирование с изображением дает тот же результат.
Чтобы добавить квадрат в демонстрационную программу; создайте квадратное белое изображение PNG и добавьте его в каталог содержимого (используйте значения по умолчанию для конвейера содержимого). Затем добавьте это к классу:
Texture2D tWhiteBox;
Добавьте это в метод загрузки:
tWhiteBox = Content.Load<Texture2D>("whitebox");
Затем в отрисовке добавьте следующее ниже других операторов отрисовки:
v2.Y = v2.Y + 50;
spriteBatch.Draw(tWhiteBox, v2, WhiteTransparent);