小编Flo*_*yon的帖子

跨多个控件同步WPF ColorAnimation

我有几个类似切换的按钮,当我处于按下状态时,我希望它们齐声搏动.

我已经定义了一个带有触发器的样式,该触发器可以启动发光动画,除了每个按钮与其他按钮异步脉动这一事实之外,它的工作正常.

如何让每个按钮与其他按钮同步?

这是风格:

<Storyboard x:Key="pulseStory">
    <ColorAnimation                                                                    
        Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
                    From="Red"
                    To="Transparent"
                    Duration="0:0:1" />
</Storyboard>

<Style x:Key="pulseButton" TargetType="Button">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Tag,RelativeSource={RelativeSource Self}}" Value="True">
            <DataTrigger.EnterActions>
                <BeginStoryboard Storyboard="{StaticResource pulseStory}"/>
            </DataTrigger.EnterActions>
        </DataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

干杯!

wpf animation synchronization styles

8
推荐指数
1
解决办法
1504
查看次数

App.Config或XAML

我目前正在评估我重写我正在进行的项目的选项,我对app.config文件的字符串类型性质感到有点恼火.

我想采用更有条理的方法,所以我有两个选择:

  • 在app.config中使用自定义SectionHandlers
  • 废弃app.config并改用XAML.

我想得到你的意见和恐怖故事,使用XAML的优点和缺点是什么?

干杯,弗洛里安

.net configuration xaml

7
推荐指数
1
解决办法
2343
查看次数

WPF MenuItem:混合数据绑定项和静态内容

我想构建一个具有以下结构的MRU菜单:

File
+=>Recent Files
   +=> Doc1.txt
   +=> Doc2.txt
   -separator-
   +=> Clear entries
Run Code Online (Sandbox Code Playgroud)

这是MVVM,我的mru列表是视图模型的数据绑定.因为我想添加分隔符,并且我不想在项目列表中插入分隔符和清除条目操作,我当前正在为我的菜单使用itemscontrol容器,但是我遇到了可怕的填充问题.你有任何解决方案可以让我只添加MenuItem实例吗?

这是XAML:

<!-- MRU list -->
<MenuItem Header="_Recent Files" >

    <ItemsControl ItemsSource="{Binding MostRecentlyUsed.Entries,Mode=OneWay}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <MenuItem Header="{Binding ShortName}" ToolTip="{Binding FileName}" Command="{Binding OpenCommand}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
    <Separator />
    <MenuItem Header="_Clean Entries" Command="{Binding MostRecentlyUsed.CleanCommand}" />
</MenuItem>
<Separator />
Run Code Online (Sandbox Code Playgroud)

干杯,弗洛里安

data-binding wpf xaml mru mvvm

6
推荐指数
1
解决办法
3524
查看次数

在 Rust FFI 中混合静态和动态库

我的可执行 Rust crate 使用libfoo.a依赖于共享库的本机库libbar.so,但根本不公开它。

我的 Rust FFI 使用来自 libfoo 的方法,所以我link在我的外部代码中定义了一个属性:

#[link(name="foo", kind="static")]
extern "C"{
    pub fn do_foo();
}
Run Code Online (Sandbox Code Playgroud)

build.rs包括Cargo.toml使用build="build.rs"

fn main() {
    let libs = &[(Some("../libs/foo/1.0/"), "static=foo"), // use ../libs/foo/1.0/libfoo.a
                 (None, "bar")]; // use libbar.so using LD_LIBRARY_PATH
    for &(ref m_path, ref lib) in libs {
        if let &Some(static_path) = m_path {
            println!("cargo:rustc-link-search={}", &static_path);
        }
        println!("cargo:rustc-link-lib={}", &lib);
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个输出

cargo:rustc-link-search=../libs/foo/1.0/
cargo:rustc-link-lib=static=foo
cargo:rustc-link-lib=bar
Run Code Online (Sandbox Code Playgroud)

从理论上讲,我希望 Rust 链接到libfoo.alibbar.so。问题是 …

rust rust-cargo

5
推荐指数
1
解决办法
1194
查看次数

是否可以匹配Rust中的NULL指针?

通话is_null()感觉有点奇怪:

fn do_stuff(ptr: *const i32) -> Option<i32> {
    if ptr.is_null() {
        None
    } else {
        Some(do_transform(*ptr, 42))
    }
}
Run Code Online (Sandbox Code Playgroud)

pointers rust

5
推荐指数
1
解决办法
2031
查看次数

从固定大小的c_char数组转换为CString

我的FFI绑定返回一个带有固定大小c_char数组的结构,我想将它们转换为std::ffi::CStringstd::String.

看起来该CString::new函数强制指向矢量的指针.

use std::ffi::CString;
use std::os::raw::c_char;

#[repr(C)]
pub struct FFIStruct {
    pub Id: [::std::os::raw::c_char; 256usize],
    pub Description: [::std::os::raw::c_char; 256usize],
}

fn get_struct() -> Option<FFIStruct> {
    println!("cheating");
    None
}

pub fn main() {
    match get_struct() {
        Some(thing) => 
            println!("Got id:{}",CString::new(thing.Id.as_ptr())),

        None => (),
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Rust Playground链接.

ffi rust

3
推荐指数
1
解决办法
1002
查看次数