2013-03-25 2 views
3

Я пытаюсь разработать ListView с закругленными углами. Свойство закругленных углов работает, однако у меня возникает проблема, когда выбран верхний или нижний элемент. В этот момент закругленные углы заменяются.Windows Store App Corner Radius

Выбор некоторого узла Inbetween верхних и нижних элементов в порядке:

enter image description here

Однако это то, что происходит с верхними и нижними деталями:

enter image description here

* Я знаю о трюке в .Net приложениях WPF, где вы обычно используете Clipping с круглыми углами. Но WinRT, похоже, не поддерживает закругленные углы.

+0

Попробуйте взглянуть на http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.itemscontrol.itemcontainerstyle. Я не знаю, будет ли он делать то, что вы хочу, но стоит попробовать. – mydogisbox

+0

Как вы теперь округляете свои углы? Если ваш фон сплошного цвета - самым простым подходом было бы наложение сплошных заполненных закруглений поверх ваших углов. В противном случае вам может потребоваться обновить 'ItemContainerStyle', как предлагалось mydogisbox, и, возможно, сделать также выделение и выделение. –

+0

Действительно, я изменяю ItemContainerStyle элемента управления списком. В этом случае контейнер имеет пограничный контроль. Я устанавливаю свойство CornerRadius. Ваше предложение кажется выполнимым (больше похоже на трюк, который вы бы выполняли в веб-дизайне). Я искал какое-то другое решение (возможно, более элегантное или что-то еще, так как я новичок в XAML) – d0kt0r1

ответ

2

Да, так, смотри ...

Позвольте мне ответить на этот вопрос с этим, например:

<Border Width="100" Height="100" Margin="5" 
    Background="DimGray" CornerRadius="15"> 
</Border> 

<Border Width="100" Height="100" Margin="5" 
    Background="DimGray" CornerRadius="15"> 
    <Rectangle Height="100" Width="100" Fill="Purple" /> 
</Border> 

<Border Width="100" Height="100" Margin="5" Padding="5" 
    Background="DimGray" CornerRadius="15"> 
    <Rectangle Height="100" Width="100" Fill="Purple" /> 
</Border> 

<Border Width="100" Height="100" Margin="5" Padding="5" 
    Background="Purple" CornerRadius="15"> 
    <Rectangle Height="100" Width="100" Fill="Purple" /> 
</Border> 

выглядит следующим образом:

enter image description here

И почему? Поскольку обрезка в Windows 8 в настоящее время поддерживает только прямоугольник. Не многоугольник, не закругленный угол, ничто. Этот 4-й пункт в выборке действительно является вашим единственным подходом в настоящее время. По крайней мере, у вас есть выбор!

Удачи!