我的Style适用于我的应用程序的所有按钮:
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse x:Name="StatusButtonCircle" Stroke="Black" StrokeThickness="0" Fill="AliceBlue" Stretch="Uniform">
<Ellipse.Width>
<Binding ElementName="StatusButtonCircle" Path="ActualHeight"/>
</Ellipse.Width>
</Ellipse>
<Ellipse x:Name="StatusButtonCircleHighlight" Margin="4" Stroke="Black" StrokeThickness="2" Stretch="Uniform">
<Ellipse.Width>
<Binding ElementName="StatusButtonCircleHighlight" Path="ActualHeight"/>
</Ellipse.Width>
</Ellipse>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
... some Triggers here
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
如何在XAML中更改属性(例如FontWeight,FontSize等)?我试过这个:
<Button FontWeight="Bold" FontSize="30" Foreground="Red">
</Button>
Run Code Online (Sandbox Code Playgroud)
在设计师视图中,我看到了变化.但在运行期间,这些更改不会应用.
经过一番调查,我也有一个Style for all TextBlock,如下所示:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="16" /> …Run Code Online (Sandbox Code Playgroud) 我尝试做这样的事情:
<Label Content="{x:Static localization:localization.Offset}" ContentStringFormat="{}{0} A"/>
Run Code Online (Sandbox Code Playgroud)
该行的结果是:“Offset A”
我想用文本块来做到这一点。那可能吗?
我正在寻找一种解决方案,如果内部属性之一发生变化,则触发整个属性的 PropertyChanged 。所以这是模型:
public class MainStatus : ObservableObject
{
private bool _safety;
public bool Safety
{
get { return _safety; }
set
{
if (_safety == value)
return;
_safety = value;
RaisePropertyChanged("Safety");
}
}
private bool _setupMode
public bool SetupMode
{
get { return _setupMode; }
set
{
if (_setupMode == value)
return;
_setupMode = value;
RaisePropertyChanged("SetupMode");
}
}
}
Run Code Online (Sandbox Code Playgroud)
它还有更多属性(bool、int 和 string)。
在虚拟机中它的使用方式如下:
private MainStatus _mainStatus;
public MainStatus MainStatus
{
get { return _mainStatus; }
set
{
if (_mainStatus …Run Code Online (Sandbox Code Playgroud) 我需要帮助制作一个看起来像这样的按钮:
无论按钮的大小如何,它都应该有那些圆角。
到目前为止我所拥有的:
App.xaml 中按钮的样式
<!-- Standard Button Colors-->
<SolidColorBrush x:Key="StandardButtonBackground" Color="#1C536F" />
<SolidColorBrush x:Key="StandardButtonForeground" Color="#FEFEFE" />
<!-- Standard Button Template-->
<Style x:Key="StandardButton" TargetType="Button">
<Setter Property="Background" Value="{StaticResource StandardButtonBackground}" />
<Setter Property="Foreground" Value="{StaticResource StandardButtonForeground}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border CornerRadius="55" Background="{StaticResource StandardButtonBackground}">
<ContentPresenter Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
在视图中使用:
<Button Style="{StaticResource StandardButton}" Content="Test" FontSize="20"/>
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
但是角是像素大小的,所以当按钮的大小改变时,角不会相应地改变。
接下来是这条彩色线,它应该显示一个状态。我怎样才能添加这样的一行?