Wpf所有控件的通用边框样式

时间:2017-08-27 09:51:22

标签: wpf app.xaml

我在wpf工作 我使用以下控件: 按钮
文本框
TextBlock的
标签
TreeView的
ListView的
组合框
有没有办法为所有这些设置默认边框(在App.xaml中)? 谢谢, 伊兰

3 个答案:

答案 0 :(得分:1)

我不知道除了为每种类型设置之外的其他方式:

<Style TargetType="{x:Type Button}">
    <Setter Property="BorderThickness" Value="3"/>
    <Setter Property="BorderBrush" Value="Green"/>
</Style>

或者如果您已经有一些默认样式,例如按钮

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
    <Setter Property="BorderThickness" Value="3"/>
    <Setter Property="BorderBrush" Value="Green"/>
</Style>

这会为您应用中的所有按钮设置默认BorderThicknessBorderBrush。您还可以在此处定义OnMouseOver等行为。

对于TextBlock,如果你想要一些边框,你也必须定义模板,因为TextBlock是原始控件,没有Border。如果你想要边框,你可以使用Label,只有Textblock边框外。

答案 1 :(得分:-1)

对于使用标准边框的所有内容,您可以创建:

<Style TargetType="{x:Type Border}">
    <Setter Property="BorderThickness" Value="10"/>
</Style>

如果在以任何其他方式创建的任何控制边框中,您将需要手动覆盖它。

答案 2 :(得分:-1)

感谢所有人 为边界定义Style的解决方案
唯一的例外是TextBox,因为TextBox中没有边框 我在TextBox中找到的解决方案是定义TextBox样式,如下所示

package com.example.murdocbgould.passwordpt4;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

    public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            //make references to your edittext and buttons in the activity_main.xml
            EditText passwordField = (EditText) findViewById(R.id.editText);
            Button submitButton = (Button) findViewById(R.id.button);
            String passwordA = "root";

            //listen for button clicks here
            submitButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
            String password = passwordField.getText().toString();
            //compare your password with password and continue

            //if you wish to move to another page (which I assume is an activity), edit the next line
            startActivity(new Intent(MainActivity.this, NewActivity.class));
                                    }
            });
        }
    }

伊兰