【发布时间】:2018-03-18 08:00:46
【问题描述】:
所以我正在尝试向我的自定义控件添加一些“效果”。 我想更改“IsPressed”上的一些属性,但由于某种原因,当我尝试这样做时,我不断收到错误
“IsPressed”无法识别或无法访问。”
我不确定这是因为它是自定义控件还是因为我遗漏了某些东西,我从未尝试使用自定义控件执行此操作,我只使用普通控件执行此操作。 这样做的正确方法是什么?
所以我拥有的是这个
这根本没有做任何事情,我不知道为什么
<UserControl.Resources>
<Style x:Key="UserControlStyle1" TargetType="{x:Type UserControl}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type UserControl}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
这将是控制
<UserControl x:Class="MasterViewDetail_MVVM.Controls.MasterView.MasterViewUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:designModel="clr-namespace:MasterViewDetail_MVVM.ViewModel.Nodes.DesignModel"
mc:Ignorable="d"
d:DesignHeight="60" d:DesignWidth="300">
<Grid Background="#2B2F42">
<Grid.ColumnDefinitions>
<!-- Column 0 -->
<!-- New SelectedItem Bar -->
<ColumnDefinition Width="Auto"/>
<!-- Column 1 -->
<!-- Color Circle (Blue Password, Green Note, Orange File) -->
<ColumnDefinition Width="Auto"/>
<!-- Column 2 -->
<!-- Main content -->
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Selected Item Bar -->
<Border Background="#FFB400" Width="5"/>
<!-- Color Circle -->
<Border Grid.Column="1" Padding="8">
<!-- Data Type background -->
<Border Name="BackgroundRGB" Background="CornflowerBlue"
Width="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
CornerRadius="{Binding ActualHeight, RelativeSource={RelativeSource Self}}">
<!-- Data Type Text -->
<TextBlock Name="DataTypeText" Text="P"
VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="White"
FontSize="20"
FontFamily="Levenim MT"/>
</Border>
</Border>
<!-- Main content -->
<!-- DONT FORGET TO NAME THE TEXTBLOCKS! -->
<Border Grid.Column="2" Padding="0 0 8 0">
<StackPanel VerticalAlignment="Center">
<!-- Title OR Username -->
<TextBlock Name="TitleText" Text="Happy@Some.com" FontWeight="Bold"
TextTrimming="CharacterEllipsis"
Foreground="#00AFE1"/>
<!-- Content -->
<TextBlock Name="ContentText" Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex tellus, rutrum quis eros in, bibendum posuere ligula.
Cras at dictum leo, in pellentesque nisi. Sed sollicitudin sagittis lacinia. Quisque sed nibh egestas, vehicula neque in, accumsan lectus. Ut quis eleifend nulla.
Aliquam orci nibh, elementum sit amet faucibus vitae, feugiat ac lacus. Suspendisse in posuere libero. Aenean eu condimentum sem. "
FontWeight="Light"
TextTrimming="CharacterEllipsis"
Foreground="Gray"
/>
</StackPanel>
</Border>
</Grid>
</UserControl>
编辑
【问题讨论】:
-
很简单:userControl 类没有 IsPressed 属性。所以你不能使用它
标签: c# .net xml xaml user-controls