Здравствуйте, lumf, Вы писали:
L>про zindex я уже давно подумал.... то ли туплю, то ли черт знает..... не получается чета нифига.... у гридов не нашел пропертей top и left... поэтому не могу расположить один грид на другим.... верен ли этот подход в принципе?
А зачем тебе у Гридов Top и Left? Если нужны, то юзай Canvas. Grid — это панель, которая не только даёт делать столбцы/строки, но и позволяет складывать контролы в стопку по z-order. Поэтому я тебе про нее написал. Посмотри пример:
Пойдет?
L>я просто в других примерах вроде видел что форму они делают прозрачной, просто дочерним элементам делают вот так: L><Border.Background> L> <SolidColorBrush Color="{DynamicResource MainPanelBackColor}"/> L></Border.Background> L>но мне такой вариант кажется не очень.... мне что теперь каждому элементу стиль задавать.
А этот код точно также приведет к прозрачности бордюров, потому что они находятся в том же визуальном дереве.
Здравствуйте, lumf, Вы писали:
L>хочется сделать прозрачное окно, на нем разместить некую область, которая не должна быть прозрачной. думал что получится сделать просто указав форме
L>получил следующий результат: L>вообще вся форма со всеми элементами стала прозрачной... L>не могу понять в чем дело
В MSDN сказано тоже самое:
Opacity is applied from parent elements on down the element tree to child elements, but the visible effects of the nested opacity settings aren't indicated in the property value of individual child elements. For instance, if a list has a 50% (0.5) opacity and one of its list items has its own opacity set to 20% (0.2), the net visible opacity for that list item will be rendered as if it were 10% (0.1), but the property value of the list item Opacity property would still be 0.2 when queried.
Решить эту проблему можно, сделав окно полностью прозрачным и играться уровнем прозрачности лежащих на нем элементов, расположенных в разных ветвях визуального дерева. Например:
Здравствуйте, lumf, Вы писали:
L>А можно здесь капельку подробнее? А то я не осознал... делаю вот так... но тут у меня же опять дочерние элементы....
Не прописывай Гриду прозрачность и фон. Вместо этого положи на него, например, прямоугольник и измени ему прозрачность. Не забудь про ZIndex, ColumnSpan и RowSpan. А можно еще лучше сделать, сделав два отдельных грида. Первый грид содержит прямоугольник, задающий фон, и второй грид, на котором уже твои кастомные элементы.
Здравствуйте, MxKazan, Вы писали:
MK>Здравствуйте, lumf, Вы писали:
L>>А можно здесь капельку подробнее? А то я не осознал... делаю вот так... но тут у меня же опять дочерние элементы.... MK>Не прописывай Гриду прозрачность и фон. Вместо этого положи на него, например, прямоугольник и измени ему прозрачность. Не забудь про ZIndex, ColumnSpan и RowSpan. А можно еще лучше сделать, сделав два отдельных грида. Первый грид содержит прямоугольник, задающий фон, и второй грид, на котором уже твои кастомные элементы.
про zindex я уже давно подумал.... то ли туплю, то ли черт знает..... не получается чета нифига.... у гридов не нашел пропертей top и left... поэтому не могу расположить один грид на другим.... верен ли этот подход в принципе? я просто в других примерах вроде видел что форму они делают прозрачной, просто дочерним элементам делают вот так: