在我的 WPF 应用程序中,我有一个 GridViewColumn,如下所示:
<GridViewColumn Width="170">
<GridViewColumn.Header>
<StackPanel Orientation="Horizontal">
<Path Data="{StaticResource pathStar}" Fill="Gold" Stroke="Red"/>
<TextBlock VerticalAlignment="Center">New items</TextBlock>
</StackPanel>
</GridViewColumn.Header>
...
Run Code Online (Sandbox Code Playgroud)
如果单击并拖动任何子对象(如路径或文本块),我将无法拖动/重新排序该列。只有当我点击可用空间时,我才能拖动此列。
我将如何使整个列再次可以拖动?
我在titleBar中创建了一个带有四个按钮的JFrame.
JFrame frame=new JFrame("custom JFrame with 4 buttons in title");
frame.setUndecorated(true);
JPanel button_panel=new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton button_1=new JButton("+");
JButton button_2=new JButton("?");
JButton button_3=new JButton("-");
JButton button_4=new JButton("system tray");
button_panel.add(button_1);
button_panel.add(button_2);
button_panel.add(button_3);
button_panel.add(button_4);
frame.getContentPane().add(button_panel,BorderLayout.NORTH);
Run Code Online (Sandbox Code Playgroud)
现在,我的标题栏中有一个带有四个按钮的JFrame.
但是,如何为这个自定义JFrame提供拖动功能?
我想在放置事件处理程序中获取JavaScriptid中拖动元素的。
div带有idof的绿色place5是可拖动的,放置位置是另一个div带有idof 的dropArea(带有红色边框)。
如何获取drop 事件处理id程序place5 div中的 ?
function dragEventHandler(theEvent) {
theEvent.dataTransfer.setData("Text", theEvent.target.id);
// some code here.
}
function dropEventHandler(theEvent) {
// how to get the id of div with id "place5" here?
}Run Code Online (Sandbox Code Playgroud)
.mainArea {
width: 200px;
height: 100px;
border-color: red;
border-style: solid;
border-width: 5px;
}
#place5 {
background: green;
height: 20px;
width: 100px;
}Run Code Online (Sandbox Code Playgroud)
<div id="dropArea" class="mainArea" ondrop="dropEventHandler(event);" ondragover="event.preventDefault();">
</div>
<div …Run Code Online (Sandbox Code Playgroud)我Slider在我的javaFX项目中使用了一个Label,当我移动滑块时,我有一个更新.
我希望在Label我拖动时更新,而Slider不仅仅是在拖动时.
这是我的代码:
betSlider.valueChangingProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> source, Boolean oldValue, Boolean newValue) {
betLabel.textProperty().setValue(String.valueOf((int)betSlider.getValue()));
} });
Run Code Online (Sandbox Code Playgroud) 我见过这个问题:Is there a way to zoom into a D3 force layout graph?
但是我从我的图表中得到了一些意想不到的行为 - 经过几次拖动或缩放或平移后,所有节点都会冻结并且拖动停止工作。
我创建了这个小提琴:http : //jsfiddle.net/7gpweae9/9/
所以要求提供代码,所以这里是主要部分:
var svg = d3.select("#graph")
.append("svg:svg")
.attr("width", width)
.attr("height", height)
.attr("pointer-event", "all")
.append("svg:g")
.call(d3.behavior.zoom().on("zoom", zoom))
.append("svg:g");
svg.append("svg:rect")
.attr("width", width)
.attr("height", height)
.attr('fill', 'white');
var link = svg.selectAll(".link");
var node = svg.selectAll(".node");
var force = d3.layout.force()
.nodes(nodes)
.links(links)
.size([width,height])
.linkDistance(100)
.charge(-400)
.start();
var drag = d3.behavior.drag()
.origin(function(d) { return d; })
.on("dragstart", dragstarted)
.on("drag", dragged)
.on("dragend", dragended);
node = svg.selectAll(".node")
.data(nodes) …Run Code Online (Sandbox Code Playgroud) 目前,我在recyclerview中执行拖放项时遇到问题.我正在参考https://github.com/iPaulPro/Android-ItemTouchHelper-Demo 但是当在适配器中执行函数时:
mListBookMark是Object的ArrayList
@Override
public boolean onItemMove(int fromPosition, int toPosition) {
Collections.swap(mListBookMark, fromPosition, toPosition);
notifyItemMoved(fromPosition, toPosition);
return true;
}
Run Code Online (Sandbox Code Playgroud)
当我将项目从位置a拖动到位置b但是当完成拖动回收器视图时没有更改数据.我该怎么办?请给我一些建议!谢谢.
我在 d3 中创建了一条线,我想拖动它。
var line = d3.select("svg")
.append("line")
.attr("x1",10)
.attr("y1",10)
.attr("x2",200)
.attr("y2",200)
.attr("stroke-width",10)
.attr("stroke","black")
.call(drag);
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是如何从相对于我的鼠标位置的线上移动两个 Points (x1,y1) (x2,y2) ,因为我可能还需要 dragstart 鼠标位置。
let drag = d3.behavior.drag()
.on('dragstart', null)
.on('drag', function(){
// move circle
let x1New = d3.select(this).attr('x1')+ ???;
let y1New = d3.select(this).attr('y1')+ ???;
let x2New = d3.select(this).attr('x2')+ ???;
let y2New = d3.select(this).attr('y2')+ ???;
line.attr("x1",x1New)
.attr("y1",y1New)
.attr("x2",x2New)
.attr("y2",y2New);
})
.on('dragend', function(){
});
Run Code Online (Sandbox Code Playgroud)
我希望你能帮我解决这个问题。
我正在尝试使用 matplotlib 处理和挑选创建一类可拖动的线。目的是在图形上设置不同的阈值和间隔。这是代码:
import matplotlib.pyplot as plt
import matplotlib.lines as lines
import numpy as np
class draggable_lines:
def __init__(self, ax, kind, XorY):
self.ax = ax
self.c = ax.get_figure().canvas
self.o = kind
self.XorY = XorY
if kind == "h":
x = [-1, 1]
y = [XorY, XorY]
elif kind == "v":
x = [XorY, XorY]
y = [-1, 1]
else:
print("choose h or v line")
self.line = lines.Line2D(x, y, picker=5)
self.ax.add_line(self.line)
self.c.draw()
sid = self.c.mpl_connect('pick_event', self.clickonline)
# pick line when I …Run Code Online (Sandbox Code Playgroud) 在此 d3 示例中拖动任何圆时,是什么阻止圆的中心与鼠标对齐?
换句话说:当您通过单击圆外边缘附近的某处来启动圆拖动时,代码中的什么保留了拖动开始时隐含的偏移量(相对于圆的中心)?
我看到这些.attr()电话:
.attr("cx", d.x = d3.event.x)
.attr("cy", d.y = d3.event.y)
Run Code Online (Sandbox Code Playgroud)
但我希望d3.event.x(和.y) 是鼠标的坐标——不考虑偏移——因此我认为圆的中心会(错误地,从 UX 的角度来看)最终位于鼠标正下方。
在 Objective-C 中,我可以NSDragOperationNone从各种拖/放方法返回,以表明我不想处理给定的拖动。这是在 Apple 的 Docs 中明确列出的 Objective-C 版本NSDragOperation:
https://developer.apple.com/documentation/appkit/nsdragoperation?language=objc
但是,如果您查看 Swift 的该页面,或者查看NSDragOperationApple 的 Swift 标头中的定义,.none则不是一种选择。
那么...如何在 Swift 中拒绝拖动操作?在一个方法中,例如:
func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation
Run Code Online (Sandbox Code Playgroud)
1) 我明确地处理 AppKit 和 macOS,而不是 UIKit 或 iOS。
2) 我意识到我可以NSDragOperation使用原始0值init 进行初始化,这是NSDragOperationNone在 Objective-C 中赋予的值,但这很脆弱。什么是 Swift 减少阻力的方法?