C# 如何在WPF中设置容器的角半径
我在应用程序中使用了Listbox。我想在不使用资源的情况下为C# 如何在WPF中设置容器的角半径,c#,wpf,xaml,C#,Wpf,Xaml,我在应用程序中使用了Listbox。我想在不使用资源的情况下为listbox项设置角半径。我已经使用itemsContainer设置了borderthickness、边框笔刷和背景,但是没有拐角半径属性。通过使用资源,可以访问唯一的cornerradius属性 我如何在不使用资源的情况下实现这一点 我是.Net开发的新手,所以请给出解决此问题的任何建议 <ListBox.ItemContainerStyle> <S
listbox
项设置角半径。我已经使用itemsContainer
设置了borderthickness
、边框笔刷和背景,但是没有拐角半径属性。通过使用资源,可以访问唯一的cornerradius
属性
我如何在不使用资源的情况下实现这一点
我是.Net开发的新手,所以请给出解决此问题的任何建议
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="LightGray"/>
<Setter Property="Margin" Value="0,0,15,0"/>
<Setter Property="Background" Value="White"/>
</Style>
</ListBox.ItemContainerStyle>
您无法设置大多数容器的
转弯半径。但是,您可以设置边框的拐角半径
,然后将任何容器的不透明掩码
设置为此边框
以下是您的操作方法:
<Grid>
<Border x:Name="Container" Height="25" Background="White" CornerRadius="8"/>
<ListBox>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="OpacityMask">
<Setter.Value>
<VisualBrush Visual="{Binding ElementName=Container}"/>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBoxItem x:Name="Item1" Height="25" Content="Item #1"/>
</ListBox>
</Grid>
如果你真的想在没有资源的情况下做同样的事情:
<Grid>
<Border x:Name="Container" Height="25" Background="White" CornerRadius="8"/>
<ListBox>
<ListBoxItem x:Name="Item1" Height="25" Content="Item #1" Background="LightGreen">
<ListBoxItem.OpacityMask>
<VisualBrush Visual="{Binding ElementName=Container}"/>
</ListBoxItem.OpacityMask>
</ListBoxItem>
</ListBox>
</Grid>
在这里,您可能希望将高度绑定到相同的值
需要注意的一件重要事情是,如果您不提供边框
背景色,它将是透明的,因此您设置的不透明度遮罩项将不可见。边框
的背景色
的颜色不相关。但是,请确保有一个项目覆盖了该边框,在本例中它是列表框
。您不能设置大多数容器的拐角半径
。但是,您可以设置边框的拐角半径
,然后将任何容器的不透明掩码
设置为此边框
以下是您的操作方法:
<Grid>
<Border x:Name="Container" Height="25" Background="White" CornerRadius="8"/>
<ListBox>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="OpacityMask">
<Setter.Value>
<VisualBrush Visual="{Binding ElementName=Container}"/>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBoxItem x:Name="Item1" Height="25" Content="Item #1"/>
</ListBox>
</Grid>
如果你真的想在没有资源的情况下做同样的事情:
<Grid>
<Border x:Name="Container" Height="25" Background="White" CornerRadius="8"/>
<ListBox>
<ListBoxItem x:Name="Item1" Height="25" Content="Item #1" Background="LightGreen">
<ListBoxItem.OpacityMask>
<VisualBrush Visual="{Binding ElementName=Container}"/>
</ListBoxItem.OpacityMask>
</ListBoxItem>
</ListBox>
</Grid>
在这里,您可能希望将高度绑定到相同的值
需要注意的一件重要事情是,如果您不提供边框
背景色,它将是透明的,因此您设置的不透明度遮罩项将不可见。边框
的背景色
的颜色不相关。但请确保有一个项目覆盖了该边框,在本例中它是ListBox