Autor Beitrag
Raorkon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Di 19.07.11 22:14 
Hallo zusammen,

ich habe in einen Stackpanel über den Code ein Image hinzugefügt. Soweit funktioniert das auch, allerdings möchte ich in einer weiteren Methode dieses Image bearbeiten. Leider finde ich das Control dann nicht, komischerweise wenn ich das Stackpanel-Control mir im Debugger anschaue dann finde ich das Image und kann auch den Name sehen, was mach ich falsch?

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<Window x:Class="FS_Test2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="301" Width="292" Loaded="Window_Loaded" Initialized="Window_Initialized" WindowState="Maximized"
        Drop="photoPanel_Drop" AllowDrop="True">
    <DockPanel AllowDrop="True">
        <StackPanel Name="main" DockPanel.Dock="Top" Drop="photoPanel_Drop" 
                    AllowDrop="True" 
                    ClipToBounds="True" Visibility="Visible" DragEnter="main_DragEnter">
            <Menu>
                <MenuItem Header="{DynamicResource File}"/>
                <MenuItem Header="{DynamicResource Help}"/>
            </Menu>

        </StackPanel>
    </DockPanel>
</Window>



ausblenden volle Höhe C#-Quelltext
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:
        private void ZoomSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {

            double value = e.NewValue;

            Image test = main.FindName("image"as Image;
            //hier erhalte ich immer eine null
            ...
            
        }

        private void photoPanel_Drop(object sender, DragEventArgs e)
        {
                    ...
                    
                    Image img = new Image();

                    img.Source = bitmap;
                    img.Name = "image";
                    img.Width = bitmap.Width;

                    img.Height = bitmap.Height;

                    Point p = e.GetPosition(photopanel);

                    img.Margin = new Thickness(0000);
                    img.VerticalAlignment = VerticalAlignment.Center;
                    img.AllowDrop = true;


                    main.Children.Add(img);
 
        }
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 20.07.11 11:54 
Du speicherst die Instanz einfach in einem Klassenfeld :gruebel: ?

_________________
>λ=
Raorkon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.07.11 18:45 
hmm finde ich irgendwie unschön :P
Raorkon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.07.11 19:03 
so hab die Lösung, wenn man dynamisch Controls hinzufügt muss mann diese auch registrieren

ausblenden C#-Quelltext
1:
2:
                    NameScope.SetNameScope(thisnew NameScope());
                    RegisterName(img.Name, img);



und schon kann man den kram auch finden, dank dir trotzdem
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 21.07.11 12:29 
user profile iconRaorkon hat folgendes geschrieben Zum zitierten Posting springen:
hmm finde ich irgendwie unschön :P
Mit der Meinung dürftest du allein auf weiter Flur stehen. Der Begriff "Magic Constant" ist dir bekannt?

_________________
>λ=
Raorkon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Do 21.07.11 12:36 
kannte ich bisher noch nicht den Begriff aber finde ich immer noch unschön in diesem zusammenhang.

Denn wenn ich mehrere Pics einfügen will/lasse stehe ich dabei schon vor einen Problem
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 21.07.11 14:31 
Und die Lösung lautet List<Image>.

Bzw. ist es in WPF grundsätzlich unschön bzw. unnötig, jemals im Code-Behind Controls zu erstellen. Data Binding mit Templates ist so elegant, dass man nie mehr zurück möchte :) .

_________________
>λ=
Raorkon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Do 21.07.11 15:43 
aber ich seh keine Möglichkeiten dynamisch unterschiedliche Bilder oder ähnliches einzufügen und dazu entsprechende unterschiedliche Kontexmenüns hinzuzufügen. Und die Möglichkeit des Code-Behind wurde mir in einen Fachbuch empfohlen. Daher habe ich diese Möglichkeit genutzt. Mit Templates habe ich mich noch nicht wirklich auseinander gesetzt (steht zwar im Buch, aber hatte noch keine Zeit das Kapitel zu lesen)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 21.07.11 17:18 
user profile iconRaorkon hat folgendes geschrieben Zum zitierten Posting springen:
aber ich seh keine Möglichkeiten dynamisch unterschiedliche Bilder oder ähnliches einzufügen und dazu entsprechende unterschiedliche Kontexmenüns hinzuzufügen.
War das auf die Klassenfelder oder Data Binding bezogen? Es funktioniert jedenfalls beides, aber ja, für den Anfang ist es nicht schlimm, im Code-Behind - quasi nach Winforms-Art - zu programmieren, die WPF-Lernkurve ist schon steil genug.

_________________
>λ=
Raorkon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: Sa 23.07.11 22:24 
bezogen auf das Databinding