WPF ResourceDictionary Canvas nem látszik a gombon

WPF ResourceDictionary Canvas nem látszik a gombon
2015-07-17T20:17:02+02:00
2015-07-18T10:32:46+02:00
2022-12-02T17:10:35+01:00
synth
Sziasztok!

ResourceDictionary-ben van egy Canvas:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Canvas x:Key="Canvas_Sikidomok" Height="200" Width="200"> <Path Fill="AliceBlue"> <Path.Data> <EllipseGeometry Center="152,146" RadiusX="47" RadiusY="47" /> </Path.Data> </Path> <Path Fill="AliceBlue"> <Path.Data> <RectangleGeometry Rect="29,1,90,90" RadiusX="0" RadiusY="0" /> </Path.Data> </Path> <Path Fill="AliceBlue"> <Path.Data> <PathGeometry Figures="M 55,110 L 0,199 L 115,199 Z" /> </Path.Data> </Path> </Canvas> </ResourceDictionary>
Ezt rá szeretném tenni egy gombra:

<Button x:Name="btnRajzok" Height="31" HorizontalAlignment="Center" Margin="20,0,0,0" VerticalAlignment="Center" Width="50">
<Button.Content> <Viewbox Stretch="Uniform"> <ContentControl Content="{StaticResource Canvas_Sikidomok}"/> </Viewbox>
</Button.Content> </Button>
Az a gond, hogy a program futásakor nem jelenik meg a gombon semmi. Érdekes módon az editorban viszont igen, teljesen úgy, ahogy szeretném, hogy kinézzen, amikor fut a program.

Ha direktben ráteszem a gombra:

<Button x:Name="btnRajzok" Height="31" HorizontalAlignment="Center" Margin="20,0,0,0" VerticalAlignment="Center" Width="50"> <Button.Content>
<Viewbox Stretch="Uniform"> <Canvas Height="200" Width="200"> <Path Fill="AliceBlue"> <Path.Data> <EllipseGeometry Center="152,146" RadiusX="47" RadiusY="47" /> </Path.Data> </Path> <Path Fill="AliceBlue"> <Path.Data> <RectangleGeometry Rect="29,1,90,90" RadiusX="0" RadiusY="0" /> </Path.Data> </Path> <Path Fill="AliceBlue"> <Path.Data> <PathGeometry Figures="M 55,110 L 0,199 L 115,199 Z" /> </Path.Data> </Path> </Canvas> </Viewbox> </Button.Content> </Button>
Így teljesen jó, látszik futás közben is.

De nem értem, hogy miért nem jó a ResourceDictionary-ből.
Lehet, hogy ezt nem így kelle onnét előcsalogatni?
Mutasd a teljes hozzászólást!
Működnie kéne, így kipróbáltam, nekem megy is gond nélkül.

VS2013 Update 4, Új WPF project, .NET 4.5
Mutasd a teljes hozzászólást!

  • Érdekes módon időközben megjavult nálam a dolog és működik rendesen, ahogy kell...
    Miután elolvastam amit írtál, átállítottam a projectet .NET 4.5-re, mivel előtte 4.0-ára volt állítva, az XP-n való futtathatóság miatt. Gondoltam hátha NET 4.0 alatt van ez az anomália, hogy futásidőben nem látszik a Canvas a gombon. De nem, 4.5-re állítva a projectet sem lett jó.
    Gondoltam kiszúrok vele: Megcsináltam ami a Canvas-on volt DrawingImage-be, ugyanabba a ResourceDictionary-be:

    <DrawingImage x:Key="Image_Sikidomok"> <DrawingImage.Drawing> <DrawingGroup> <GeometryDrawing Brush="AliceBlue"> <GeometryDrawing.Geometry> <EllipseGeometry Center="152,146" RadiusX="47" RadiusY="47" /> </GeometryDrawing.Geometry> </GeometryDrawing> <GeometryDrawing Brush="AliceBlue"> <GeometryDrawing.Geometry> <RectangleGeometry Rect="29,1,90,90" RadiusX="0" RadiusY="0" /> </GeometryDrawing.Geometry> </GeometryDrawing> <GeometryDrawing Brush="AliceBlue"> <GeometryDrawing.Geometry> <PathGeometry Figures="M 55,110 L 0,199 L 115,199 Z" /> </GeometryDrawing.Geometry> </GeometryDrawing> </DrawingGroup> </DrawingImage.Drawing> </DrawingImage>
    Ezt az Image-t tettem rá a gombra és ez így jól működött, látszott a designerben is és futásidőben is.
    Aztán később valamiért vissza állítottam a ViewBox - Canvas-os verziót és láss csodát! Jól működik azóta!
    Valamilyen anomália volt ez, de nem tudom mi okozta és mitől jött helyre.
    Mindenesetre köszönöm, hogy megírtad, hogy alapból jónak kellet lennie.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd