Autor Beitrag
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 28.07.07 10:36 
Hi,
schon bin ich bei meinem nächsten 2 Problemen^^


  • wie mach ich es, dass der button eine andere form bekommt? in etwa so wie hier user defined image (Icon ignorieren )
  • jeder button hat ja einen blauen border der orange wird wenn man die maus über den button bewegt. Ich hab versucht die farben mit BorderBrush zu verändern, nur anscheinend sind das andere Properties. weiß jemand welche das sind?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 28.07.07 11:02 
Hallo!

Wenn DU mal in der MSDN Library schaust, wirst Du unter "Button control template" (oder so ähnlich) den XAML Code finden, welcher für den Button zuständig ist.

Wenn Du den in Resources einfügst, kannst Du das Aussehen der Buttons beeinflussen. Nimmst Du die Resources-Sektion des Windows, so werden alle Buttons darin gestylt, Du kannst aber auch die Resourcen nur eines Buttons nehmen, dann wird nur dieser gestylt.

Weitere Möglichkeit: Du gibst dem Style einen Key (x:Key="foobar") und kannst ihn dann einzelnen Butttons zuweisen (Style="{DynamicResource foobar}").

Grüße
Christian


//edit: Ach ja, an das Control Template kommst Du auch über Blend, wenn Du dort rechts auf eine Komponente klickst und dann "Edit Control Parts (template) -> Edit a copy" wählst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Greenberet Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 28.07.07 12:39 
ich hab jetzt mal versucht einfach mal testweise ein rechteck das mit orange gefüllt ist darzustellen für den button.
aber sobald ich das setz, wird der button nicht dargestellt
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
    <Style x:Key="CXMButton" TargetType="{x:Type Button}">
      <Setter Property="Background" Value="{StaticResource ButtonBackgroundBrush}"/>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate>
            <Rectangle Fill="Orange" />
          </ControlTemplate>
        </Setter.Value>
      </Setter>
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="true">
          <Setter Property="BitmapEffect">
            <Setter.Value>
              <BitmapEffectGroup>
                <OuterGlowBitmapEffect GlowColor="Goldenrod" GlowSize="5"/>
              </BitmapEffectGroup>
            </Setter.Value>
          </Setter>
        </Trigger>
      </Style.Triggers>
    </Style>
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 28.07.07 13:12 
Das hier tut's bei mir:
ausblenden volle Höhe XML-Daten
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:
<Window x:Class="WindowsApplication4.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WindowsApplication4" Height="300" Width="300"
    >
  <Window.Resources>
    <SolidColorBrush x:Key="ButtonBackgroundBrush" Color="#DDD" />

    <Style x:Key="CXMButton" TargetType="{x:Type Button}">
      <Setter Property="Background" Value="{StaticResource ButtonBackgroundBrush}"/>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate>
            <Rectangle Fill="Orange" />
          </ControlTemplate>
        </Setter.Value>
      </Setter>
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="true">
          <Setter Property="BitmapEffect">
            <Setter.Value>
              <BitmapEffectGroup>
                <OuterGlowBitmapEffect GlowColor="Goldenrod" GlowSize="5"/>
              </BitmapEffectGroup>
            </Setter.Value>
          </Setter>
        </Trigger>
      </Style.Triggers>
    </Style>
  </Window.Resources>

    <Grid>
    <Button Style="{DynamicResource CXMButton}" Width="200" Height="100" />

  </Grid>
</Window>


Allerdings würde ich anstatt eines Rectangle eine Border nehmen, weil Du da dann noch den ContentPresenter rein packen kannst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Greenberet Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 28.07.07 16:27 
ok hab den fehler gefunden, durch das überschreiben des controltemplates wird die größe nicht mehr dynamisch zum context erstellt.

vielen danke für deine hilfe