WPF vraagje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Hoi Tweakers,

Ik werk voor de eerste keer met WPF voor de interface en ondervind wat problemen.
Ik heb een SVG die ik wil tonen. Omdat .net native geen ondersteuning bied voor SVG's heb ik deze eerst geconverteerd naar XAML met behulp van sharpvectors.
Nu wil ik de resulterende drawingGroup graag in een canvas in een grid tonen.
Wanneer ik de drawingGroup echter wil toevoegen in het canvas krijg ik volgende fout.

"A value of type 'DrawingGroup' cannot be added to a collection or dictionary of type 'UIElementCollection'."

Ik kom er niet meteen achter wat het probleem zou kunnen zijn, iemand suggesties?
Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • HerrKauwer
  • Registratie: Augustus 2010
  • Laatst online: 02-09 10:47
Wil je iets duidelijker zijn met wat je precies gedaan hebt? Hoe ziet de drawingGroup er bijvoorbeeld uit en waar probeer je dit in te plakken? Zet je het direct in een XAML? En hoe ziet je XAML er dan uit?

Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Bij deze:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<Window x:Class="test1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="650" Width="600">
    <Grid Height="600" Width="550" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition Height="330" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150"></ColumnDefinition>
            <ColumnDefinition Width="260"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Canvas Grid.Row="1" Grid.Column="1">

                <DrawingGroup x:Key="myDrawing" >
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <GeometryGroup>
                                <LineGeometry StartPoint="0,0" EndPoint="1,1" />
                                <LineGeometry StartPoint="0,1" EndPoint="1,0" />
                            </GeometryGroup>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Pen>
                            <Pen Thickness="0.2" Brush="#3366FF" />
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                    <GeometryDrawing Brush="Red"
       Geometry="M 0.4,0.4 L 0.5,0.2 0.6,0.4 0.5,0.5" />
                </DrawingGroup>
  
            <Rectangle Width="175" Height="90" Stroke="Black">
                <Rectangle.Fill>
                    <DrawingBrush Drawing="{StaticResource myDrawing}" Viewport="0,0,0.5,0.5" TileMode="Tile">
                        <DrawingBrush.RelativeTransform>
                            <RotateTransform CenterX="0.5" CenterY="0.5" Angle="45" />
                        </DrawingBrush.RelativeTransform>
                    </DrawingBrush>
                </Rectangle.Fill>
            </Rectangle>


</Canvas>
</Grid>
</Window>

Acties:
  • 0 Henk 'm!

  • mcjambi
  • Registratie: Maart 2012
  • Laatst online: 25-08 13:11
Mogen we ook je resources zien ? (using Microsoft.bla bla bla)

EDIT: References***

[ Voor 15% gewijzigd door mcjambi op 02-05-2012 22:16 ]


Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Natuurlijk :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

Acties:
  • 0 Henk 'm!

  • Peelee
  • Registratie: Mei 2010
  • Laatst online: 04-01-2021
Je 'mengt' hier 2 technieken: je moet een keuze maken uit deze 2:
- ofwel maak je de DrawingGroup aan als een resource (bv binnen je Grid of Window) en verwijs je zoals nu vanuit je rectangle naar de DrawingGroup resource (via de Key)
- ofwel plaats je het als 'Drawing' property value binnen je DrawingBrush en moet je deze niet nog eens apart definiëren

Je kan bv dit doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<Canvas Grid.Row="1" Grid.Column="1">
            <Rectangle Width="175" Height="90" Stroke="Black">
                <Rectangle.Fill>
                    <DrawingBrush Viewport="0,0,0.5,0.5" TileMode="Tile">
                        <DrawingBrush.RelativeTransform>
                            <RotateTransform CenterX="0.5" CenterY="0.5" Angle="45" />
                        </DrawingBrush.RelativeTransform>
                        <DrawingBrush.Drawing>
                            <DrawingGroup>
                                <GeometryDrawing>
                                    <GeometryDrawing.Geometry>
                                        <GeometryGroup>
                                           <LineGeometry StartPoint="0,0" EndPoint="1,1" />
                                            <LineGeometry StartPoint="0,1" EndPoint="1,0" />
                                        </GeometryGroup>
                                    </GeometryDrawing.Geometry>
                                    <GeometryDrawing.Pen>
                                        <Pen Thickness="0.2" Brush="#3366FF" />
                                    </GeometryDrawing.Pen>
                                </GeometryDrawing>
                                <GeometryDrawing Brush="Red" Geometry="M 0.4,0.4 L 0.5,0.2 0.6,0.4 0.5,0.5" />
                            </DrawingGroup>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Rectangle.Fill>
            </Rectangle>
</Canvas>

Acties:
  • 0 Henk 'm!

  • Lunacy
  • Registratie: Juni 2008
  • Laatst online: 27-10-2024
Aha, had al een vermoeden in die richting.
Heb het kunnen oplossen, bedankt!
Pagina: 1