"wpf control" befindet sich außerhalb von TabControl

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    "wpf control" befindet sich außerhalb von TabControl

    Hallo Leute,

    ich habe hier ein folgendes Problem:



    Warum wird "Images", also dieser weißer Dinger, außerhalb von TabPanel angezeigt? Ich habe es in Stackpanel sowie Grid auch versucht, leider bringt es nicht wirklich weiter.
    Wenn jemand eine Idee hätte, woran das liegen könnte, würde ich mich supi freuen, woran es liegen könnte.

    WPF TabControl:

    XML-Quellcode

    1. <TabControl Name="MasterTabControl" Background="{DynamicResource HuleDarkGrayColor}" Margin="9.6,52,9.6,34.4" BorderThickness="1" Grid.Column="1" BorderBrush="{DynamicResource HuleBlueColor}">
    2. <TabControl.Resources>
    3. <Style TargetType="TabItem" BasedOn="{StaticResource HuleTabItem}"/>
    4. </TabControl.Resources>
    5. </TabControl>


    WPF TabItem:

    XML-Quellcode

    1. <Style x:Key="HuleTabItem" TargetType="{x:Type TabItem}">
    2. <Setter Property="Template">
    3. <Setter.Value>
    4. <ControlTemplate TargetType="TabItem">
    5. <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="{StaticResource HuleBlueColor}" CornerRadius="4,4,0,0" Margin="2,0">
    6. <ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2"/>
    7. </Border>
    8. <ControlTemplate.Triggers>
    9. <Trigger Property="IsSelected" Value="True">
    10. <Setter TargetName="Border" Property="Background" Value="{StaticResource HuleBlueColor}"/>
    11. </Trigger>
    12. </ControlTemplate.Triggers>
    13. </ControlTemplate>
    14. </Setter.Value>
    15. </Setter>
    16. <Setter Property="Foreground" Value="{DynamicResource HuleWhiteColor}"/>
    17. </Style>



    Neue TabItem einfügen in C# (das bringt uns wohl kaum weiter):

    C#-Quellcode

    1. var instance_sprite = new Image();
    2. instance_sprite.Source = GameMakerStudioData.lol;
    3. instance_sprite.Width = 64;
    4. instance_sprite.Height = 64;
    5. instance_sprite.RenderTransform = new TranslateTransform(-300, -300);
    6. Grid grid = new Grid();
    7. grid.Children.Add(instance_sprite);
    8. TabItem item = new TabItem();
    9. item.Header = "Tab with sprites";
    10. item.Content = grid;
    11. MasterTabControl.Items.Add(item);
    12. MasterTabControl.SelectedItem = item;



    Ich bin schon echt verwirrt, wieso das überhaupt falsch anzeigt... oO

    Auf jeden Antwort würde ich mich echt freuen!

    - Chini
    Hi,

    was Du da machst, widerspricht komplett dem Sinn von WPF, da Du Dir einfach Dein UI im Codebehind zusammenzimmerst. Das mag in WinForms gehen, aber hier geht es nicht mehr.
    Schaffe Dir MVVM an und trenne GUI und Daten korrekt. Dann sehen wir weiter.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: