Tôi có một phong cách Button:WPF Kiểu: làm thế nào để thay đổi GradientStop Màu trong Kích hoạt
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Path x:Name="path1" ... Data="...some data...">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,-0.3" StartPoint="0.5,0.8">
<GradientStop x:Name="gs1" Color="Green" Offset="0.44"/>
<GradientStop Color="Black" Offset="0.727"/>
</LinearGradientBrush>
</Path.Fill>
</Path>
<ContentPresenter ...properties... />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="???" Property="Color" Value="Green"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
Tôi muốn thay đổi màu của GradientStop với x: Name = "GS1" khi chuột nút trên, vì vậy tôi sử dụng Trình kích hoạt IsMouseOver. Làm cách nào để tôi có quyền truy cập vào Thuộc tính màu trong Trình kích hoạt? Tôi đã thử TargetName = "gs1" và TargetName = "path1.gs1" nhưng nó không hoạt động. Bất kỳ ý tưởng?
Ngoài ra còn có một cách để lập chỉ mục các GradientStops trong XAML nhưng tôi không thể có được một ví dụ để làm việc ... một cái gì đó như , như được mô tả tại http://books.google.com/books?id=XWu70Oqz6RIC&lpg=PA38&ots=FMR-4o3veZ&dq=pro%20wpf%202008%20with%20c%23%20gradientstops&pg=PA770#v=onepage&q=gradientstops&f=false –
bạn có thể làm điều đó trong mã, NP, và tôi khá chắc chắn bạn có thể làm điều đó với một hình ảnh động, nhưng tôi chưa bao giờ thấy bất kỳ lập chỉ mục làm việc trong xaml –
Tôi đã sử dụng nó thành công để làm