Autor Beitrag
zappo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40



BeitragVerfasst: Do 04.06.09 13:09 
Hallo an alle,

auf der Suche nach der Lösung für ein Problem, bin ich auf euch gestossen. Hoffe hier kann mir jemand helfen.
Ich habe aktuell in einem Projekt einen "quasi" Wizzard erstellt, welcher auf TabControls basiert.
Hierzu habe ich die Reiter selber auf "hidden" gestellt, Border und Background jeweils auf die Farbe der GUI.

Unter Vista funktioniert dies super, im kompilierten Zustand ist nicht zu erahnen das sich eine TabControl hinter dem ganzen verbirgt. Unter WinXP allerdings bleibt von der TabControl immer ein hässlicher Rahmen zurück. Das ganze sieht aus wie auf dem angehängten Bild.

Könnt ihr mir helfen? Weiß jemand wie ich dieses Problem umgehen kann, oder woran es liegt???


Gruß
Sebastian

Edit: Woran es liegt, weiß ich nun. Das Problem liegt am XP Skin, da scheint dieser "Schatten" zu zu gehören.
Wie schaffe ich es nun das dieser für die TabCOntrol nicht genutzt wird?
Einloggen, um Attachments anzusehen!
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 04.06.09 14:51 
:welcome:

Unter WPF gibt es doch wirklich keinen Grund mehr, dafür ein TabControl zu missbrauchen. Ich weiß jetzt nicht, was ein "Quasi-Wizard" für Anforderungen besitzt ;) , aber statischer Content ist auch ohne 3rd-Party-Control kein großes Problem:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <x:ArrayExtension Type="UIElement" x:Key="Collection">
            <TextBlock>Hello</TextBlock>
            <TextBox>World</TextBox>
        </x:ArrayExtension>
    </Window.Resources>
</Window>

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
  public partial class Window1 : Window
  {
    int index;
    UIElement[] collection;
    DispatcherTimer timer = new DispatcherTimer {
      Interval = TimeSpan.FromSeconds(1)
    };

    public Window1()
    {
      InitializeComponent();
      collection = (UIElement[])Resources["Collection"];
      timer.Tick += delegate
      {
        Content = collection[index++ % 2];
      };
      timer.Start();
    }
  }

Wenn der Content dynamisch ist, wird das Ganze dank Data Binding und Data Templates ja fast noch einfacher ;) .

_________________
>λ=
zappo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40



BeitragVerfasst: Do 04.06.09 15:02 
hmmm

auf den einzelnen tabControl Seiten sind bei mir allerdings wiederrum Controls.
Bei Text .. klar... aber so??!?
Stells dir als Sammeln von Daten vor, welche Tab für Tab abgefragt werden.

Da ich keine wirklich praktikable Lösung gefunden habe komplette Formulare zu tauschen hab ichs eben mit der tabControl gelöst, was den Charme hat das es einfach ist und grundsätzlich gut funktioniert.

Nur das Problem mit dem komischen Schatten welcher durchs Luna Theme von WinXP kommt besteht.
Ne Idee wie das wegbekommen??
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 04.06.09 17:11 
user profile iconzappo hat folgendes geschrieben Zum zitierten Posting springen:
auf den einzelnen tabControl Seiten sind bei mir allerdings wiederrum Controls.
Bei mir auch :nixweiss: ... Hab doch extra noch eine TextBox genommen :( .

user profile iconzappo hat folgendes geschrieben Zum zitierten Posting springen:
Ne Idee wie das wegbekommen??
Control-Template in Blend/Suche bei Google SHOWMETHETEMPLATE anschauen und entsprechend bearbeiten. Minimalversion ohne Tabs:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
<TabControl.Template>
            <ControlTemplate TargetType="TabControl">
                <ContentPresenter x:Name="PART_SelectedContentHost"
                                  ContentSource="SelectedContent" />
            </ControlTemplate>
        </TabControl.Template>

_________________
>λ=