首页 文章

如何在ToolBar WPF C#中生成调色板(如在Paint.NET中)?

提问于
浏览
-1

这个代码用于生成按钮(工具):

InitializeComponent();
        for (int i = 0; i < Models.Creator.Tools.Count; i++)
        {
            string way = "C:/Users/ADMIN/source/repos/RedactorMakovei/RedactorMakovei/bin/icons/" + Models.Creator.Tools[i].GetType().Name + ".bmp";
            ImageBrush image = new ImageBrush();
            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.UriSource = new Uri(way, UriKind.Relative);
            bitmapImage.EndInit();
            image.ImageSource = bitmapImage;
            Button button = new Button();
            ToolBar.Children.Add(button);
            button.BorderBrush = Brushes.LightBlue;
            button.Name = "button" + i.ToString();
            button.Height = 35;
            button.Width = 35;
            button.Background = image;
            button.Content = "";
            button.Tag = i;
            button.HorizontalAlignment = HorizontalAlignment.Left;
            button.Click += new RoutedEventHandler(Btn_Click);
        }

如何 generate 调色板我可以选择一些颜色和油漆(如果调色板将 on right side of ToolBar 将很酷)? This is my ToolBar

1 回答

  • -1

    在XAML(MainWindow.xaml)中 . 这将为您提供类似于Windows Paint的调色板 .

    <WrapPanel Width="100">
        <WrapPanel.Resources>
            <Style TargetType="Button">
                <Setter Property="Margin" Value="2"/>
                <Setter Property="Height" Value="15"/>
                <Setter Property="Width" Value="15"/>
            </Style>
        </WrapPanel.Resources>
        <Button Background="Green" Click="ColorButton_Click"/>
        <Button Background="Black" Click="ColorButton_Click"/>
        <Button Background="Blue" Click="ColorButton_Click"/>
        <Button Background="Red" Click="ColorButton_Click"/>
        <Button Background="Yellow" Click="ColorButton_Click"/>
        <Button Background="White" Click="ColorButton_Click"/>
        <Button Background="Pink" Click="ColorButton_Click"/>
        <Button Background="DarkGreen" Click="ColorButton_Click"/>
        <Button Background="MediumPurple" Click="ColorButton_Click"/>
        <Button Background="Olive" Click="ColorButton_Click"/>
    </WrapPanel>
    

    在后面的代码中(MainWindow.xaml.cs)

    private void ColorButton_Click(object sender, RoutedEventArgs e)
    {
        var clickedButton = sender as Button;
        var clickedColour = clickedButton.Background;
    }
    

相关问题