Hallo an alle Programmierfreunde da draußen!
Ich wollte mir gerne eine Custom User Control erstellen, weil ich sie in dieser Art und Weise in fast jeder WPF-App verwende.
Mein C# - Code:
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
namespace MenuBar
{
public partial class MenuBar : UserControl
{
public List<string> Buttons;
public SolidColorBrush Background;
public SolidColorBrush Foreground;
public SolidColorBrush BorderBrush;
public Thickness BorderThickness;
public MenuBar(int winHeight)
{
InitializeComponent();
GridMenu.Height = winHeight;
GridMenu.HorizontalAlignment = HorizontalAlignment.Stretch;
GridMenu.VerticalAlignment = VerticalAlignment.Top;
}
public void Create()
{
ColumnDefinition c;
for (int i = 0; i <= Buttons.Count; i++)
{
c = new ColumnDefinition();
c.Width = new GridLength(GridMenu.Width / Buttons.Count);
GridMenu.ColumnDefinitions.Add(c);
}
Button btn;
int col = 0;
foreach (string s in Buttons)
{
btn = DefaultButton(s);
GridMenu.Children.Add(btn);
Grid.SetColumn(btn, col);
col++;
}
}
private Button DefaultButton(string title)
{
Button btn = new Button();
btn.Width = GridMenu.Width / Buttons.Count;
btn.Height = GridMenu.Height;
btn.Background = Background;
btn.Foreground = Foreground;
btn.Cursor = Cursors.Hand;
btn.BorderBrush = BorderBrush;
btn.BorderThickness = BorderThickness;
btn.Content = title;
return btn;
}
}
}
Mein XAML - Code:
<UserControl x:Class="MenuBar.MenuBar"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MenuBar"
mc:Ignorable="d"
x:Name="Menu">
<Grid x:Name="GridMenu"></Grid>
</UserControl>
Abgesehen davon, dass ich nicht sicher sagen kann, dass der Code so funktioniert, bekomme ich schon beim Build eine Fehlermeldung:
MenuBar.xaml(9, 26): [CS0426] Der Typname "MenuBar" ist im Typ "MenuBar" nicht vorhanden.
Ich habe leider absolut keine Ahnung, wo der Fehler liegt, ich programmiere noch nicht so lange. Vielleicht kann mir jemand von euch helfen?
Das Projekt wurde als DesktopApplication im .NETCore v3.1 mit JetBrains Rider erstellt.
Danke für die Hilfe!
ah ok hast du da ein video oder eine seite wo das gut erklärt wie das geht?