Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式在Silverlight中创建没有复选框(仅复选框)的复选框?_Silverlight_Controls_Checkbox - Fatal编程技术网

如何以编程方式在Silverlight中创建没有复选框(仅复选框)的复选框?

如何以编程方式在Silverlight中创建没有复选框(仅复选框)的复选框?,silverlight,controls,checkbox,Silverlight,Controls,Checkbox,作为一名silverlight新手,我想在silverlight4中创建一个无框只读复选框以显示绿色复选标记。我无法使方框隐形/透明或使复选标记为绿色,它保持灰色 我尝试的是: cbstatus = new CheckBox(); cbstatus.IsEnabled = false; // read only cbstatus.Visibility = System.Windows.Visibility.Visible; cbst

作为一名silverlight新手,我想在silverlight4中创建一个无框只读复选框以显示绿色复选标记。我无法使方框隐形/透明或使复选标记为绿色,它保持灰色

我尝试的是:

        cbstatus = new CheckBox();
        cbstatus.IsEnabled = false; // read only
        cbstatus.Visibility = System.Windows.Visibility.Visible;
        cbstatus.Background =  new SolidColorBrush(Colors.Transparent);
        cbstatus.BorderBrush = new SolidColorBrush(Colors.Transparent);
        cbstatus.Foreground = new SolidColorBrush(Colors.Green);

谢谢你的建议

您需要覆盖默认模板。将以下样式作为起点添加到App.xaml资源中:-

<Style x:Key="BorderlessReadOnlyCheckBox" TargetType="CheckBox">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Foreground" Value="#FF000000"/>
    <Setter Property="HorizontalContentAlignment" Value="Left"/>
    <Setter Property="VerticalContentAlignment" Value="Top"/>
    <Setter Property="Padding" Value="4,1,0,0"/>
    <Setter Property="IsEnabled" Value="False" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="CheckBox">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="16"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CheckStates">
                            <VisualState x:Name="Checked">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="CheckIcon" Storyboard.TargetProperty="(UIElement.Opacity)" Duration="0" To="1"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Unchecked"/>
                            <VisualState x:Name="Indeterminate"/>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid HorizontalAlignment="Left" VerticalAlignment="Top" Width="16" Height="16">
                        <Path x:Name="CheckIcon" Margin="1,1,0,1.5" Fill="Green" Stretch="Fill" Opacity="0" Width="10.5" Height="10" Data="M102.03442,598.79645 L105.22962,597.78918 L106.78825,600.42358 C106.78825,600.42358 108.51028,595.74304 110.21724,593.60419 C112.00967,591.35822 114.89314,591.42316 114.89314,591.42316 C114.89314,591.42316 112.67844,593.42645 111.93174,594.44464 C110.7449,596.06293 107.15683,604.13837 107.15683,604.13837 z" FlowDirection="LeftToRight"/>
                    </Grid>
                    <ContentPresenter
                          Grid.Column="1"
                          x:Name="contentPresenter"
                          Content="{TemplateBinding Content}"
                          ContentTemplate="{TemplateBinding ContentTemplate}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          Margin="{TemplateBinding Padding}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我的项目中没有App.xml,而是一个Styles.xml(由VS模板创建),所以我在那里添加了样式。但是还有一个问题,我的应用程序对象不包含资源集合,因此我无法访问style@elsni:您通过在“新建项目”对话框中选择“Silverlight应用程序”启动了项目,对吗?该模板包含一个初始App.xaml文件。抱歉,我忽略了这一点。它确实包含一个App.xml,它合并了Styles.xml。但没有应用程序。参考资料:-/
cbstatus = new CheckBox();
cbstatus.Style = (Style)Application.Current.Resources["BorderlessReadOnlyCheckBox"];