c# - Change ZIndex of an ListBox Element -
my problem
when create new elements in listbox newer ones overlay old ones since don't have same zindex , therefore prevent selection. in listbox use transparent rectangles on canvas itemtemplate , itemspaneltemplate.
i want change zindex of elements same value user can pick element on hovers mouse.
screenshot
screenshot 1: how should work , when zindex correct
screenshot 2: happens when zindex not correct
my xaml code looks this:
<cc:listboxnodragselection itemssource="{binding rectangles}" background="{dynamicresource bg}" selecteditem="{binding selected}" borderthickness="0"> <listbox.itemspanel> <itemspaneltemplate> <canvas x:name="mockupcanvas" background="transparent"> <canvas.contextmenu> <contextmenu> <menuitem header="new rectangle" command="{binding addnewrectangletocollectioncommand}"/> <menuitem header="delete selected rectangle" command="{binding trydeleterectanglefromcollectioncommand}"/> </contextmenu> </canvas.contextmenu> </canvas> </itemspaneltemplate> </listbox.itemspanel> <listbox.itemcontainerstyle> <style targettype="listboxitem"> <setter property="canvas.left" value="{binding rectangle.x}"></setter> <setter property="canvas.top" value="{binding rectangle.y}"></setter> <setter property="canvas.zindex" value="1"/> </style> </listbox.itemcontainerstyle> <listbox.itemtemplate> <datatemplate> <dockpanel height="auto" width="{binding rectangle.width}"> <label dockpanel.dock="top" content="{binding rectangle.name}" foreground="{dynamicresource foreground}" ishittestvisible="false"/> <rectangle width="{binding rectangle.width}" height="{binding rectangle.height}" dockpanel.dock="bottom" fill="transparent" stroke="white" strokethickness="3" radiusx="10" radiusy="10" /> </dockpanel> </datatemplate> </listbox.itemtemplate> </cc:listboxnodragselection> as can see try set zindex same value each rectangle doesn not seem work @ all.
help appreciated!
here's issue msdn
members of children collection have equal zindex values rendered in order in appear in visual tree.
setting z-index can much. newer items in collection default rendered on top of older elements. if you're looking use mouse positions select elements, maybe using hit tests determine element want


Comments
Post a Comment