WPF CustomControl停止显示50%的时间

时间:2016-05-18 18:20:32

标签: c# wpf xaml

我的WPF项目中有自定义控件,我已经定义了样式,类,我已经在我的xaml中调用了它,并确保包含引用。当我开始项目时,50%的时间自定义对象完美呈现,另外50%它不会显示,但仍然可以互动。

    public class PermissionBox : Control
{
    public PermissionBox()
    {
        DefaultStyleKey = typeof(PermissionBox);
    }
    public string PumpID
    {
        get
        {
            return (string)GetValue(PumpIDProperty);
        }
        set
        {
            SetValue(PumpIDProperty, value);
        }
    }
    public static readonly DependencyProperty PumpIDProperty =
        DependencyProperty.Register("PumpID", typeof(string), typeof(PermissionBox), new PropertyMetadata(string.Empty));


    public string FuelType
    {
        get
        {
            return (string)GetValue(FuelTypeProperty);
        }
        set
        {
            SetValue(FuelTypeProperty, value);
        }
    }
    public static readonly DependencyProperty FuelTypeProperty =
        DependencyProperty.Register("FuelType", typeof(string), typeof(PermissionBox), new PropertyMetadata(string.Empty));
}

在Themes / Generic.xaml

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:POS">


<Style TargetType="{x:Type controls:PermissionBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type controls:PermissionBox}">
                <Grid Background="Gray" Opacity="0.8">
                    <TextBlock Foreground="Black" FontSize="15" Text="Pump ID:" HorizontalAlignment="Left"/>
                    <TextBlock Foreground="Black" FontSize="15" Text="{TemplateBinding PumpID}" HorizontalAlignment="Right"/>
                    <TextBlock Foreground="Black" FontSize="15" Text="Fuel Type:" HorizontalAlignment="Left"/>
                    <TextBlock Foreground="Black" FontSize="15" Text="{TemplateBinding FuelType}" HorizontalAlignment="Right"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

和调用窗口

    <Window x:Class="POS.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:controls="clr-namespace:POS"
    mc:Ignorable="d"
    Title="Window1" Height="300" Width="300">
    <Grid>
    <controls:PermissionBox PumpID="100" FuelType="Unleaded">        </controls:PermissionBox>
   </Grid>
</Window>

非常感谢您解决此问题的任何帮助。

0 个答案:

没有答案