在 Silverlight 的 ComboBox 中画线

Draw line in ComboBox in Silverlight

如何在 Silverlight 中以编程方式在 comboBoxItem 中创建行? 我想要这样的东西:

谢谢。

我尝试这样做:

 var lineTypeComboBox = new ComboBox
        {
            Width = 40,
            Background = Background,
            Margin = new Thickness(0),
            Padding = new Thickness(0)
        };
        lineTypeComboBox.Items.Add(new Line {X1 = 1, X2 = 20, Y1 = 1, Y2 = 20});

我从你的代码中看出你没有设置线条的 Stroke 颜色。尝试将其设置为黑色(并且不要忘记将 ComboBox 添加到某个容器):

var lineTypeComboBox = new ComboBox
         {
            Width = 40,
            Background = Background,
            Margin = new Thickness(0),
            Padding = new Thickness(0)
         };
lineTypeComboBox.Items.Add(new Line { X1 = 1, X2 = 20, Y1 = 1, Y2 = 20, Stroke = new SolidColorBrush(Colors.Black) });
//add ComboBox to StackPanel
spMain.Children.Add(lineTypeComboBox);

此外,我真的不认为这是一种像在 Win Forms 中那样用代码编写所有这些内容的好方法。为什么不 XAML,Silverlight 最好的部分之一?哦,你的线坐标有点偏离,你画对角线。 这个怎么样?

<ComboBox Width="40">
    <ComboBox.Resources>
        <Style TargetType="Line">
            <Setter Property="X1" Value="1" />
            <Setter Property="Y1" Value="1" />
            <Setter Property="X2" Value="20" />
            <Setter Property="Y2" Value="1" />
            <Setter Property="Stroke" Value="Black" />
        </Style>
    </ComboBox.Resources>

    <ComboBox.Items>
        <ComboBoxItem>
            <Line StrokeThickness="1" />            
        </ComboBoxItem>
        <ComboBoxItem>
            <Line StrokeThickness="3" />            
        </ComboBoxItem>
        <ComboBoxItem>
            <Line StrokeThickness="5" />            
        </ComboBoxItem>
    </ComboBox.Items>
</ComboBox>

您可以直接设置所有属性而不是样式,但这样会不太灵活。