我正在尝试创建一个响应的图像网格(带描述),当鼠标悬停时将有一个颜色叠加(只是图像而不是文本).由于图像的响应高度,我遇到的问题是叠加层覆盖了所有内容,而不仅仅是图像.
我能解决这个问题吗?
我在这里重新创建了这个问题,以便更容易理解:http://jsfiddle.net/r8rFc/
这是我的HTML:
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-3 project">
<a href="#">
<div>
<img src="http://placehold.it/500x500" class="img-responsive"/>
<div class="fa fa-plus project-overlay"></div>
</div>
<div style="text-align:center;">
<h3>Project name</h3>
<p>Image description</p>
</div>
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的CSS:
.project-overlay {
position: absolute;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(41,128,185,0.9);
color: #fff;
padding: 50%;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
一个有利的结果是防止这种例外,最好是,或至少优雅地处理它.
我在 Microsoft代码中抛出一个异常.最重要的是,抛出异常的方法是System.Windows.Input.Manipulations.ManipulationSequence.ProcessManipulators我在Microsoft Reference Source中找不到的.
抛出异常时,我可以在它引用的Call Stack窗口中看到一行Windows.Input.Manipulations.ManipulationProcessor2D.ProcessManipulators,这在Microsoft Reference Source中确实存在.
但正如您所看到的,它没有一个名为的兄弟类ManipulationSequence.
至于异常本身,它System.Argument.OutOfRangeException的值是Timestamp values must not decrease. Parameter name: timestamp Actual value was 6590630705479.
抛出异常的方法的完全限定签名是 System.Windows.Input.Manipulations.ManipulationSequence.ProcessManipulators(long timestamp, System.Collections.Generic.IEnumerable<System.Windows.Input.Manipulations.Manipulator2D> manipulators, System.Windows.Input.Manipulations.ManipulationSequence.ISettings settings)
似乎宇宙中的另一个人遇到了这个问题,但根据唯一的评论它无法复制.
我MediaElement在画布上有6个对象在操作时都运行视频,所以我觉得它可能与CPU被征税和减速有关,可能会使时间戳无序地发送到方法中(尽管使用Image而不是MediaElement)时会出现同样的问题.异常偶然发生,有时它会在几秒钟之后乱搞对象,有时可能需要几分钟或更长时间来操作对象.
我在其中执行实际操作的代码ManipulationDelta 如下所示:
//Get current values to manipulate
TransformGroup group = (TransformGroup)element.RenderTransform.Clone();
TranslateTransform translate = (TranslateTransform)group.Children[0].Clone();
ScaleTransform scale = (ScaleTransform)group.Children[1].Clone();
RotateTransform rotate = (RotateTransform)group.Children[2].Clone();
//...does manipulations on each by …Run Code Online (Sandbox Code Playgroud) 目标是直接访问子ViewModel中的属性,而不会丢失整个ViewModel结构的上下文。
当前,我在词典中有一个资源,其中包含对ViewModel的引用,该引用用作整个应用程序的数据上下文。
因此,每个视图的数据上下文如下所示:
DataContext="{StaticResource mainViewModel}"
Run Code Online (Sandbox Code Playgroud)
在我的ViewModel中,我像这样嵌套了子ViewModel:
public class ParentViewModel {
public ChildVM ChildVM { get; set; }
public ParentVM(){
ChildVM = new ChildViewModel();
}
}
public class ChildViewModel {
public string SomeProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我可以从数据上下文访问属性,如下所示:
<Button Text="{Binding ChildVM.SomeProperty}"/>
Run Code Online (Sandbox Code Playgroud)
但这变得非常重复。我希望能够做到:
<Button Text="{Binding SomeProperty}"/>
Run Code Online (Sandbox Code Playgroud)
将我的datacontext设置为以下伪内容:
DataContext="{StaticResource MainViewModel, Path=ParentVM.ChildVM}"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?