小编el-*_*ino的帖子

覆盖自定义样式的属性

我的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)

wpf xaml properties button

6
推荐指数
1
解决办法
1393
查看次数

使用静态资源连接文本块中的字符串(无绑定)

我尝试做这样的事情:

<Label Content="{x:Static localization:localization.Offset}" ContentStringFormat="{}{0} A"/>
Run Code Online (Sandbox Code Playgroud)

该行的结果是:“Offset A”

我想用文本块来做到这一点。那可能吗?

string wpf concatenation string-concatenation textblock

2
推荐指数
1
解决办法
1054
查看次数

如果内部属性更改,则整个对象的 RaisePropertyChanged

我正在寻找一种解决方案,如果内部属性之一发生变化,则触发整个属性的 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)

wpf properties mvvm propertychanged

2
推荐指数
1
解决办法
3336
查看次数

WPF 按钮样式,带有相对于按钮大小和彩色线条的圆角

我需要帮助制作一个看起来像这样的按钮:

在此处输入图片说明

无论按钮的大小如何,它都应该有那些圆角。

到目前为止我所拥有的:

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)

它看起来像这样:

在此处输入图片说明

但是角是像素大小的,所以当按钮的大小改变时,角不会相应地改变。

接下来是这条彩色线,它应该显示一个状态。我怎样才能添加这样的一行?

wpf button wpf-style

0
推荐指数
1
解决办法
3392
查看次数