我怎样才能让WPF矩形的顶角变圆?我创建了一个边框并设置了CornerRadius属性,在边框内我添加了我的矩形,但它不起作用,矩形没有圆角.
<Border BorderThickness="1" CornerRadius="50,50,0,0" BorderBrush="Black">
<Rectangle Fill="#FF5A9AE0" Stretch="UniformToFill" ClipToBounds="True"/>
</Border>
Run Code Online (Sandbox Code Playgroud) 我有一个Border
与CornerRadius
属性设置为10,这里面Border
,有一个StackPanel
.该面板包含两个Border
分别带有蓝色和红色背景的s.
蓝色边框的左上角和右上角以及红色边框的左下角和右下角都伸出第一个边框的弯曲边缘.我希望将蓝色和红色边框修剪到父边框.那可能吗?
顺便说一下,我知道如果我为CornerRadius
蓝色和红色边框的属性设置相同的值,它将遵循第一个的曲线.我不希望这样 - 我想要修剪.谢谢!
<Border
Width="200"
Height="200"
BorderThickness="1"
BorderBrush="Black"
CornerRadius="10">
<StackPanel>
<Border Height="100" Background="Blue" />
<Border Height="100" Background="Red" />
</StackPanel>
</Border>
Run Code Online (Sandbox Code Playgroud) 我有这个带有边框的网格:
<Border Padding="0" BorderBrush="Orange" BorderThickness="2" CornerRadius="5">
<Grid >
<Label Grid.Row="0" Grid.Column="0" BorderBrush="Black"/>
<Label Grid.Row="1" Grid.Column="0" BorderBrush="Black"/>
<Label Grid.Row="0" Grid.Column="1" BorderBrush="Black"/>
<Label Grid.Row="1" Grid.Column="1" BorderBrush="Black"/>
</Grid>
</Border>
Run Code Online (Sandbox Code Playgroud)
问题是,标签边框与网格角落中的橙色边框重叠.这可能是因为z-index.如何解决这个问题呢?
我不想在我的wpf应用程序中显示边框外的内容.这是一张图片来说明我的观点:
在该图片中,蓝色框是边框,并注意其子项是列表视图.我不想显示整个列表视图.我只想显示蓝色边框内的任何内容.
我必须使用什么控制才能实现?我正在寻找某种面具......创建自定义用户控件是我唯一的选择吗?
你好
我现在尝试了 2 天多来创建像上图一样处于按下状态的切换按钮,但是上边框让我很头疼。有谁知道如何创建下降的圆角?背景是从上到下的线性渐变:#b8c7d6 - #a8b3c4
任何帮助都将不胜感激!
我有这样的东西,但它与设计相去甚远:
<Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Border Background="Black" BorderThickness="1" BorderBrush="#FF4E4F50" CornerRadius="3"/>
<Border Background="Black" Margin="1" CornerRadius="3"/>
<Border Margin="2" CornerRadius="3">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#0099B9D1" Offset="0"/>
<GradientStop Color="#FF99B9D1" Offset="1"/>
<GradientStop Color="#B299B9D1" Offset="0.054"/>
</LinearGradientBrush>
</Border.Background>
</Border>
<Border Margin="2" CornerRadius="3" Opacity="0.3">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5"/>
<SkewTransform CenterY="0.5" CenterX="0.5"/>
<RotateTransform Angle="90" CenterY="0.5" …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个MVVM应用程序,我希望有一个ProgressBar,当该属性发生变化时,它可以平滑地动画到它的新值.我已经使用c#看到了这个问题的几个答案,但我更喜欢在模板中完成所有操作.我遇到的问题是正确设置和定位事件和故事板.这是我目前的情况:
进度条 -
风格 - (只是触发器)
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="RangeBase.ValueChanged">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="???????"
Storyboard.TargetProperty="Value"
To="???????" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
Run Code Online (Sandbox Code Playgroud)
我从这里获取了触发器代码:http://msdn.microsoft.com/en-us/library/system.windows.controls.progressbar(v = vs.110).aspx.
如何将TargetName设置为模板本身,以便它适用于使用此模板的所有控件?如何为传入值设置"收件人"?似乎有一种方法可以获取"Binding"值,但我有Value和Max都绑定在progressbar元素上.怎么会知道怎么用?
以下是整个模板供参考:
<Style x:Key="ProgressStyle" TargetType="{x:Type ProgressBar}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ProgressBar}">
<Grid MinHeight="14" MinWidth="20">
<Border x:Name="BaseRectangle" Background="{StaticResource BaseColor}" CornerRadius="10,0,10,0"></Border>
<Border x:Name="GlassRectangle" CornerRadius="10,0,10,0" Background="{StaticResource GlassFX}" Panel.ZIndex="10"></Border>
<Border x:Name="animation" CornerRadius="10,0,10,0" Opacity=".7" Background="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Left"></Border>
<Border x:Name="PART_Indicator" CornerRadius="10,0,10,0" Background="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Left"></Border>
<Border x:Name="PART_Track" …
Run Code Online (Sandbox Code Playgroud) 希望我的问题很容易:)我有BORDER作为主要容器,有一些角半径.里面有一个GRID,如果我想为网格设置一些背景颜色 - 角落外面有一个丑陋的填充部分......
那么,我怎样才能将BORDER设置为全局容器,内部的一切都留在里面?
谢谢!